Gas
из этих 3х админок есть явные аутсайдеры или все хороши по своему?
Гречушников
тут есть кто использует админки?
Alexander
Есть
Гречушников
как по мне, эти админки, это балловство какое то, ну или максимум для старта проекта
Alexander
Каждый инструмент используется тогда когда он нужен)
Гречушников
да прост в двух местах встречал. оба случая для мееня негативные показались. так и не смог сдружиться с нмими
Рустам
Лучшая CMS, что я нашел (осваиваю, буду использовать взамен битрикса на простых проектах) - https://sulu.rocks/en
Рустам
Хотя, насколько я понимаю, от битрикса не уйдешь...
Гречушников
а чем битрикс сложен для простых проектов?
Рустам
Субьективно - хочется развития и идти в правильный бекенд
Гречушников
ну если только это
Рустам
Не об этом речь сейчас. Человек попросил админку, я скинул
Гречушников
мой опыт лишь был в том, что если что потребуется нестандартное сделать, а это чаще случается, чем нестандартное, то придется не функционал пилить, а админку эту допиливать
Гречушников
лучше уж взять бутстрап фреймворк какой нибудь и его использовать
Гречушников
покопонентно
Гречушников
ну или вью компонениы
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
посмотрите, что там в конструкторе?
Dmitry
Dmitry
видимо этот класс не предназначен для автоматического автовиринга
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
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
Но я ведь его зарегистрировал...
jenia
Это то о чем вы говорили или можно исправить?
Dmitry
Сейчас что написано в аннотации контроллера?
/**
* @Route("/share/{id}")
* @ParamConverter("sound", "App\Model\Sound\Entity\Sound")
*/
public function share(Sound $sound)
Dmitry
Добавьте @ParamConverter("sound", "App\Model\Sound\Entity\Sound")
jenia
Пробывал. То же самое
jenia
И config.yml тоже добавил на всякий...
jenia
И без него тоже самое :(
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
jenia
Пока застрял на
App\Model\Sound\Entity\Sound object not found by the @ParamConverter annotation.
Dmitry
Dmitry
Dmitry
$em->find(Sound::class, $id) работает вообще у вас?
jenia
jenia
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
тогда сдаюсь)))
Maxim Kainov
Maxim Kainov
Gas
Maxim Kainov
Maxim Kainov
спасибо
Но иногда конечно задумываешься, а не луче было бы с нуля написать. Сложно прикинуть, сколько времени это бы заняло. Думаю, немало.
Maxim Kainov
Вот недавно нужно было сделать, чтобы пользователь мог выбирать колонки, показываемые в списках, и выводить в колонках свойства one to many. Пришлось немного попотеть, но сделал почти без костылей.
Gas
у меня редактирование нескольких типов, плюс имитация другого пользователя. и всё только для шефа. сложность минимальна
Gas
Gas
)) если уж копаться, то сразу в кишках
Maxim Kainov
Еще некоторые классы объявлены final, а хотелось бы их расширить.
Gas
а как решил (что показвать)? динамическое изменение конфигов
Maxim Kainov