Гречушников
простите. есть форма с данными подключения к црм. жму кнопку сохранить. на сервере валидирую и пробую подключиться к црм.
Кирилл
валидируете что? Обычно валидируется какая-то сущность
Гречушников
грубо говоря вот так
Кирилл
и assertCallback можно ко всему классу применить
Кирилл
не только в полю
Гречушников
https://paste.laravel.io/6913d94d-a85c-4b5d-9a3c-8751c9e8dcfd
Гречушников
обновил
Кирилл
а что это за класс? просто без обхявления непонятно
Гречушников
class AmocrmController extends AbstractController
Кирилл
а это даж контроллер
Гречушников
мне кажется я мыслю как то не туда
Кирилл
было бы правильнее создать маленькую сущность типа AmoCRmConnection, на ее основе сгенерить форму, навесить все те же валидаторы + callback на весь класс в этой маленькой сущности. Тогда form->isValid провалидирует все самостоятельно и вам останется только em->persist
Гречушников
у меня исключительно рестапи. формы не используются
Кирилл
форма это не только <form>. Можно создать форму, подсунуть в нее реквест и провалидировать
Кирилл
при этом рендерить собственно форму не требуется
Гречушников
спасибо. изучу этот момент
Кирилл
вот же https://symfony.com/doc/current/forms.html#processing-forms
Кирилл
то есть пришел откуда-то реквест и его в форму, необязательно он прямо с form, может с курла откуда-то
Dmitry
спасибо. изучу этот момент
И еще https://github.com/Limenius/LiformBundle чтобы форму сразу нормализовать в json
Кирилл
Также кстати можно поюзать десериализатор
Кирилл
а ну походу тут оно и юзается
Гречушников
/** * @var string * * @ORM\Column(name="lead_data", type="json", nullable=false) */ private $leadData; этого не достаточно сделать автоматическую конвертацию jsona? поле увы типа текст
Vadim
Напиши свой тип.
Гречушников
ну я тайп на json поменял
Vadim
https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/custom-mapping-types.html
Гречушников
json то явно есть тип
Vadim
Поле текст, тип стоит json. Что тебе надо в итоге?
Гречушников
json
Vadim
Конвертацию откуда куда, из базы или в базу?
Гречушников
в поле текст хранится json
Гречушников
хочу прозрачно работать с жсоном
Гречушников
/** * @var bool * * @ORM\Column(name="lead_is_read", type="boolean", length=3, nullable=true, options={"unsigned" = true, "default" = 0}) */ private $leadIsRead = 0;
Гречушников
чтобы это могло значить )
Гречушников
длина 3 дефолт 0 ансигнед тип булеан и так по всему проекту
Гречушников
Dmitry
/** * @var bool * * @ORM\Column(name="lead_is_read", type="boolean", length=3, nullable=true, options={"unsigned" = true, "default" = 0}) */ private $leadIsRead = 0;
а в конфиге доктрины нет случайно подмены типа boolean на 'DA'/'NET'? по другому 3 символа объяснить не могу)))
Гречушников
)))
Maxim Kainov
форма это не только <form>. Можно создать форму, подсунуть в нее реквест и провалидировать
Symfony forms нужны для работы с html формами. Зачем их использвовать для json? Нужно взять сериалайзер и провалидировать валидатором.
Гречушников
а как из таймстампа в datetimeконвертировать?
Гречушников
https://stackoverflow.com/questions/31056000/symfony-doctrine-timestamp-field такое не работает )
Dmitriy
Не выгодно
Dmitriy
Да я не часто читаю этот чат.
Dmitrij
Привет всем
Dmitrij
мужики, у меня трабл
Dmitrij
app.INFO: Serialization of 'Closure' is not allowed
Dmitrij
погуглил, нашел что многие сталкиваются
Dmitrij
но не нашел решения
Dmitrij
кто то подскажет как решить ?
Dmitrij
я понимаю, что функция замыкания не может сериализоваться, но вот почему я хз
Dmitrij
на ларке такой же кусок кода работает без запинок
Кирилл
Ну код нам надо вообразить?
Кирилл
Какой-то минимальный пример
Dmitrij
$commandHandlerManager = $this->commandHandlerManager; $keyboard = $this->createMenuKeyboard($commandHandlerManager); $this->ask('Что мне делать?', function (Answer $answer) use ($commandHandlerManager) { $handler = $commandHandlerManager->getHandler($answer->getText()); if ($answer->getText() !== null) { $this->bot->reply('Не понял вас'); return; } $this->bot->startConversation($handler); }, $keyboard->toArray());
Dmitrij
походу все спят уже (
Sergy
Добрый день, подскажите как поймать id из такой строчки: https://127.0.0.1:8000/product/?id=1, в аннотации у меня записано "/product/{id}" и страница просто обновляется и всё, если ввести https://127.0.0.1:8000/product/1 всё нормально отрабатывает.
Sergy
Спасибо
Sergy
Подскажите ещё пожалуйста что прописать в аннотации
Vadim
Надя + Ваня = ❤️ - пропиши.
Sergy
Смешно конечно
Vadim
Не смешно. Вопросы правильно задавай.
Vadim
/product/{id} - это прописываешь, в свой метод получаешь объект продукта Product $product.
Eshently
Hi guys. тут сразу банят или можно задать вопрос?
Eshently
в группе по-больше какая-та жесть
Eshently
so my question
Eshently
Hi guys. How to implement HMR in symfony/encore? Cannot make hot reloading after change compiled assets https://symfony.com/doc/current/frontend/encore/dev-server.html
Dmitry
Symfony forms нужны для работы с html формами. Зачем их использвовать для json? Нужно взять сериалайзер и провалидировать валидатором.
Через формы очень удобно в одном флаконе много пришедших значений провалидировать, загнать в Dto-класс, который отправить в сервис. Рендерить формы не обязательно
Vadim
И провалидировать, собственно, тоже. Буквально две строки.
Vadim
$command = $serializer->deserialize($request->getContent(), Command::class, 'json'); $violations = $validator->validate($command);
Eshently
Не стал юзать енкор. Прикрутил Laravel.mix
разобрался во всем, кроме лайв релоадинг
Eshently
вообще дока, написано очень хорошо
Dmitry
Не надо мапить на сущность
Я имею в виду, то, что в форме делает EntityType, с возможностью queryBuilder подставить
Eshently
Как разделить выполнение кода нескольких объектов(тут не важно чего) на независимые процессы, чтобы не было execution_time, да и вообще быстро получить ответ то есть как бы параллельное выполнение кода + кроме того нужно чтобы код не заканчивался пока, не выполнятся все процессы, так как нужно вернуть ответ Я задам этот вопрос так как делаю на симфе
Eshently
Так муть какую-то написал