Gas
из этих 3х админок есть явные аутсайдеры или все хороши по своему?
Гречушников
тут есть кто использует админки?
Alexander
Есть
Гречушников
как по мне, эти админки, это балловство какое то, ну или максимум для старта проекта
Alexander
Каждый инструмент используется тогда когда он нужен)
Гречушников
да прост в двух местах встречал. оба случая для мееня негативные показались. так и не смог сдружиться с нмими
Рустам
Лучшая CMS, что я нашел (осваиваю, буду использовать взамен битрикса на простых проектах) - https://sulu.rocks/en
Рустам
Хотя, насколько я понимаю, от битрикса не уйдешь...
Гречушников
а чем битрикс сложен для простых проектов?
Рустам
Субьективно - хочется развития и идти в правильный бекенд
Гречушников
ну если только это
Рустам
Не об этом речь сейчас. Человек попросил админку, я скинул
Gas
как по мне, эти админки, это балловство какое то, ну или максимум для старта проекта
да, нужно что б шеф (не программер) сам себе кейс натыкать мог и не отвлекал от самой задачи
Гречушников
мой опыт лишь был в том, что если что потребуется нестандартное сделать, а это чаще случается, чем нестандартное, то придется не функционал пилить, а админку эту допиливать
Гречушников
лучше уж взять бутстрап фреймворк какой нибудь и его использовать
Гречушников
покопонентно
Гречушников
ну или вью компонениы
Dmitry
тут есть кто использует админки?
Для юзеров обычно пишется нормальное управление. А перечисленные выше админки очень полезны, когда разрабу надо напрямую покопаться в данных
Gas
в общем я начал пилить easyadmin и хотел удостовериться, что это не самый худший выбор
Dmitry
ну или вью компонениы
В api platform предлагают The API Platform Admin, которая работает на https://marmelab.com/react-admin/ с реактом и редаксом
jenia
Скажите из за чего может быть такое?
jenia
Cannot resolve argument $sound of "App\Controller\SoundController::share()": Cannot autowire service "App\Model\Sound\Entity\Sound": argument "$user" of method "__construct()" references class "App\Model\User\Entity\User" but no such service exists.
jenia
/** * @Route("/share/{id}", name=".share") * @param Sound $sound * @param \App\Model\Sound\UseCase\ShowSound\Handler $handler * @return Response * @throws \Exception */ public function share(Sound $sound, \App\Model\Sound\UseCase\ShowSound\Handler $handler):Response { ....
jenia
doctrine.yml mappings Sound: is_bundle: false type: annotation dir: '%kernel.project_dir%/src/Model/Sound/Entity' prefix: 'App\Model\Sound\Entity' alias: Sound
Dmitry
Видимо юзера внесли в зависимости, а на сайт зашел анонимный пользователь, как пример
Dmitry
юзер указан в конструкторе App\Model\Sound\Entity\Sound посмотрите, что там в конструкторе?
jenia
юзер указан в конструкторе App\Model\Sound\Entity\Sound посмотрите, что там в конструкторе?
public function __construct(Id $id, User $user, string $name, string $name_original, \DateTimeImmutable $createdAt) {
Dmitry
public function __construct(Id $id, User $user, string $name, string $name_original, \DateTimeImmutable $createdAt) {
вот. а откуда возьмутся эти данные при инициализации сервиса?
Dmitry
видимо этот класс не предназначен для автоматического автовиринга
jenia
видимо этот класс не предназначен для автоматического автовиринга
mappings: User: is_bundle: false type: annotation dir: '%kernel.project_dir%/src/Model/User/Entity' prefix: 'App\Model\User\Entity' alias: User
jenia
Этого не достаточно?
Dmitry
нет. Entity - это запись из БД. Как она сама при старте определит, какой id надо взять из базы? Entity не является сервисом: App\: resource: '../src/*' exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}' и не автовирится
Dmitry
хотя стоп. только сейчас разглядел, что у вас по другому все
Dmitry
У вас конверсия параметра в контроллере но в entity у вас свой конструктор с указанием параметров соответственно, когда происходит new Sound контроллеру негде взять параметры. Соответственно придется отказаться от Param Conversion и вручную получать свою entity по id
jenia
doctrine.yml types: sound_id: 'App\Model\Sound\Entity\IdType'
jenia
А если так?
jenia
Как бы продвигаюсь и теперь другая ошибка вышла Unknown column type "sound_id" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can ...
jenia
Но я ведь его зарегистрировал...
Dmitry
Но я ведь его зарегистрировал...
cache:clear может надо сделать?
jenia
cache:clear может надо сделать?
Сделал. App\Model\Sound\Entity\Sound object not found by the @ParamConverter annotation.
jenia
Это то о чем вы говорили или можно исправить?
Dmitry
Сейчас что написано в аннотации контроллера? /** * @Route("/share/{id}") * @ParamConverter("sound", "App\Model\Sound\Entity\Sound") */ public function share(Sound $sound)
jenia
Сейчас что написано в аннотации контроллера? /** * @Route("/share/{id}") * @ParamConverter("sound", "App\Model\Sound\Entity\Sound") */ public function share(Sound $sound)
/** * @Route("/share/{id}", name=".share") * @param Sound $sound * @param \App\Model\Sound\UseCase\ShowSound\Handler $handler * @return Response * @throws \Exception */ public function share(Sound $sound, \App\Model\Sound\UseCase\ShowSound\Handler $handler):Response {
Dmitry
Добавьте @ParamConverter("sound", "App\Model\Sound\Entity\Sound")
jenia
Пробывал. То же самое
jenia
И config.yml тоже добавил на всякий...
jenia
И без него тоже самое :(
jenia
Добавьте @ParamConverter("sound", "App\Model\Sound\Entity\Sound")
[Syntax Error] Expected Value, got 'App\Model\Sound\Entity\Sound' at position 162 in method App\Controller\SoundController::share() in /app/config/routes/../../src/Controller/ (which is being imported from "/app/config/routes/annotations.yaml"). Make sure annotations are installed and enabled.
jenia
Также сеычас с аннотацией
Dmitry
а @ParamConverter("sound", "Sound:Sound") ?
jenia
а @ParamConverter("sound", "Sound:Sound") ?
Выдаёт по прежнему такое [Syntax Error] Expected Value, got 'Sound:Sound' at position 162 in method App\Controller\SoundController::share() in /app/config/routes/../../src/Controller/ (which is being imported from "/app/config/routes/annotations.yaml"). Make sure annotations are installed and enabled.
jenia
annotations.yml controllers: resource: ../../src/Controller/ type: annotation
Dmitry
ааа ParamConverter - это часть SensioFrameworkExtraBundle с 4 версии он вроде по умолчанию не ставится потому и не работает видимо composer require sensio/framework-extra-bundle
jenia
Пока застрял на App\Model\Sound\Entity\Sound object not found by the @ParamConverter annotation.
Dmitry
Пока застрял на App\Model\Sound\Entity\Sound object not found by the @ParamConverter annotation.
в сетях пишут, что такая ошибка вываливается, если в контроллер не приходит id нет ли еще роута с тем же путем, но без {id} ? возможно с ним путается?
Dmitry
[Syntax Error] Expected Value, got 'App\Model\Sound\Entity\Sound' at position 162 in method App\Controller\SoundController::share() in /app/config/routes/../../src/Controller/ (which is being imported from "/app/config/routes/annotations.yaml"). Make sure annotations are installed and enabled.
вот эта ошибка говорит, что конвертер не работает и пытается подставить значение вместо объекта Sound use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; присутствует?
Dmitry
Пока застрял на App\Model\Sound\Entity\Sound object not found by the @ParamConverter annotation.
А вот эта ошибка говорит, что не найден объект по вашему id
Dmitry
$em->find(Sound::class, $id) работает вообще у вас?
jenia
$em->find(Sound::class, $id) работает вообще у вас?
/** * @param EntityManagerInterface $em * @return Response * @Route("/tyty", name=".tyty") */ public function ff(EntityManagerInterface $em): Response { $hhh = $em->getRepository(Sound::class); return $this->render('app/sound/tt.html.twig', [ 'hhh' => $hhh->find('e9dda799-00c2-4f9c-ba77-a1bc2eef8361') ]); }
jenia
Работает все ок
Dmitry
тогда сдаюсь)))
jenia
тогда сдаюсь)))
Все равно спасибо :)
Maxim Kainov
Maxim Kainov
Maxim Kainov
спасибо
Но иногда конечно задумываешься, а не луче было бы с нуля написать. Сложно прикинуть, сколько времени это бы заняло. Думаю, немало.
Maxim Kainov
Вот недавно нужно было сделать, чтобы пользователь мог выбирать колонки, показываемые в списках, и выводить в колонках свойства one to many. Пришлось немного попотеть, но сделал почти без костылей.
Gas
у меня редактирование нескольких типов, плюс имитация другого пользователя. и всё только для шефа. сложность минимальна
Maxim Kainov
для любого типа? или для какого то определенного?
Для двух сущностей нужно было сделать, я сделал для всех.
Gas
)) если уж копаться, то сразу в кишках
Maxim Kainov
)) если уж копаться, то сразу в кишках
Да, там все довольно понятно, почти все переопределяется. Но вот хотел твиг расширение переопределить, не получилось. Обошелся без этого.
Maxim Kainov
Еще некоторые классы объявлены final, а хотелось бы их расширить.
Gas
а как решил (что показвать)? динамическое изменение конфигов