Павел
Было не очевидо.
Я бы листенер ставил, самый надёжный способ
В листенере надо ловить по названию fk потом преобразовать, опять же там вроде не понять что именно мешает (например какой id) хотя мб и есть в сообщении, но опять же парсить из стринга. В целом да, так то вариант, как самая надёжная точка против рейскондишена.
Михаил
проверено много раз
Ну так вы тоже право голоса имеете.
Если им будет удобен определённый формат, будет странно делать то, что им неудобно. Но если то, что они предлагают что-нибудь нарушают - то просто придите к компромиссу
Вадим
Вадим
Павел
ну такое. Но спасибо!
Геморойненько, но это однозначно самый надёжный способ в борьбе с гонкой (если она есть)
Павел
Павел
Если делаем и листенер и пре проверку, то листенер можно сделать попроще, лишь бы не 500
Михаил
Алексей
Коллеги, подскажите пожалуйста куда можно вставить проверку при авторизации (в админку) чтобы можно было роли проверить?
Вадим
привет!
подскажите разницу между PUT и PATCH в апи платформе v3?
Михаил
Михаил
Вадим
Вадим
Вадим
Михаил
Это значит что на данный момент они схожи
Вадим
Вадим
Вадим
Вадим
вопрос про v3
Михаил
Ща попробую поискать конкретно код
Михаил
А, я понял. У нас есть авторизация по логину и паролю, но там кастомный контроллер
Вадим
Вадим
https://symfony.com/doc/current/security.html#authentication-events
или вот
Михаил
Вадим
Михаил
Напиши функциональные тесты и проверь
Вадим
Вадим
мне на самом деле как раз эта настройка standard_put = true подходит и понимать я больше ничего не хочу, спасибо что заставил пересмотреть видос
Михаил
Врядли, вообще я удивляюсь что апи платформ пользуются
Это такой слон, он и решает проблемы ну и создаёт их.
У нас было 10 лбов бекендеров - мы в панике бежали этого (фреймворка???)
Вадим
Вадим
хотя я только начал и у меня ещё всё впереди походу :)
Михаил
Dmitry
drawDB — это бесплатный и интуитивно понятный инструмент проектирования баз данных и генератор SQL.
Пользователи могут создавать диаграммы несколькими щелчками мыши, экспортировать SQL-скрипты и настраивать свой редактор без создания учетной записи.
⤷ Ссылка на проект
📢GitHub | #Tool #Useful #SQL
Vlad
Что это за новая приколюха у плагина симфы для шторма, что ему не нравится)))
Vlad
при передачи сущности в конструктор другой сущности ругается
Михаил
при передачи сущности в конструктор другой сущности ругается
Ну наверное потому что параметры конструктора будут заполнены только при вызове из кода
Когда доктрина будет создавать эту сущность при дессериализации из бд то что она должна будет в конструктор запихнуть?
(Ред. я имел ввиду что она не учитывает конструктор и возможно ругается на это, но в таком случае это бред и ошибка точно не в этом)
Михаил
Возможно тебе будет интересен приватный конструктор и статические методы-фабрики
Vlad
Vlad
Михаил
Михаил
тогда есть предположение что сущность лежит не там где обычно лежат сущности и плагин думает что это сервис
Vlad
Михаил
а вообще новый шторм - полная лажа
Там вроде был фикс, но в кейсе
private UserReposi[КУРСОР ТУТ] $users
мы нажимаем таб и ide съедает впереди стоящие слово вставляя то что осталось вставить в автокомплишоне и получается
private UserRepositoryers
Михаил
при пролистовании списка не понятно где мы находимся в этом списке
Михаил
есть проблема что если в коде в списках параметров есть комментарий
__construct(private UserRepository /*комментарий*/ users) то ide будет ругатся что я передал не верный тип, ведь ожидался UserRepository /*комментарий
Михаил
раньше было лучше и ламповеей.
В vim спокойно код пишешь и всё ок, а щас нужно обязательно эти сраные ide ставить, чтоб их создателю икалось
Михаил
доктрина не использует конструктор при гидрации
я просто вспомнил что использовал раньше конструктор для проставления значений по умолчанию (коллекции там итп)
Но доктрина видимо сама это заполняла при десериализации а мой конструктор дёргался только при нативном вызове
Виктор
Всем привет! Не очень понимаю, как реализовать следующую логику (или так делать вообще не стоит?).
Есть сущность Album. У данной сущности есть свойство thumbnail, представляющее собой ManyToOne с сущностью Photo.
Есть форма редактирования альбома. В ней есть поле "Обложка", где отображается ссылка на текущую обложку в виде URI (например https://localhost:3000/photo/Fotografiya-1). Чтобы изменить обложку, нужно, соответственно, просто открыть нужную фотографию, скопировать ссылку и вставить в это поле.
Собственно, что мне непонятно. Как правильно обработать юзер-инпут в этом поле?
Сперва в buildForm сделал getter и setter для этого поля. В сеттере проверял, что юзер-инпут - это ссылка, парсил её, и пытался найти соответствующее фото. Если репозиторий возвращал не null (фото существует), то всё ок - сущность Photo сохраняю в поле thumbnail. Если нет, то ничего не делаю.
Но это как-то криво, нужна же валидация, чтобы пользователь понимал, в чём дело? Ок, сделал валидатор IsPhotoUri. Но затупил и не подумал о том, что значение-то валидируется после того, как маппится в сущность. Получается, нужно дважды валидировать сперва в сеттере, затем в валидаторе?
Короче что-то не могу найти конец, за который потянуть, чтобы эту ситуацию распутать. Подскажите, пожалуйста.
Nikolay
Всем привет! Не очень понимаю, как реализовать следующую логику (или так делать вообще не стоит?).
Есть сущность Album. У данной сущности есть свойство thumbnail, представляющее собой ManyToOne с сущностью Photo.
Есть форма редактирования альбома. В ней есть поле "Обложка", где отображается ссылка на текущую обложку в виде URI (например https://localhost:3000/photo/Fotografiya-1). Чтобы изменить обложку, нужно, соответственно, просто открыть нужную фотографию, скопировать ссылку и вставить в это поле.
Собственно, что мне непонятно. Как правильно обработать юзер-инпут в этом поле?
Сперва в buildForm сделал getter и setter для этого поля. В сеттере проверял, что юзер-инпут - это ссылка, парсил её, и пытался найти соответствующее фото. Если репозиторий возвращал не null (фото существует), то всё ок - сущность Photo сохраняю в поле thumbnail. Если нет, то ничего не делаю.
Но это как-то криво, нужна же валидация, чтобы пользователь понимал, в чём дело? Ок, сделал валидатор IsPhotoUri. Но затупил и не подумал о том, что значение-то валидируется после того, как маппится в сущность. Получается, нужно дважды валидировать сперва в сеттере, затем в валидаторе?
Короче что-то не могу найти конец, за который потянуть, чтобы эту ситуацию распутать. Подскажите, пожалуйста.
Не надо делать валидацию в сущности
kakoi-to-noob
Всем привет! Не очень понимаю, как реализовать следующую логику (или так делать вообще не стоит?).
Есть сущность Album. У данной сущности есть свойство thumbnail, представляющее собой ManyToOne с сущностью Photo.
Есть форма редактирования альбома. В ней есть поле "Обложка", где отображается ссылка на текущую обложку в виде URI (например https://localhost:3000/photo/Fotografiya-1). Чтобы изменить обложку, нужно, соответственно, просто открыть нужную фотографию, скопировать ссылку и вставить в это поле.
Собственно, что мне непонятно. Как правильно обработать юзер-инпут в этом поле?
Сперва в buildForm сделал getter и setter для этого поля. В сеттере проверял, что юзер-инпут - это ссылка, парсил её, и пытался найти соответствующее фото. Если репозиторий возвращал не null (фото существует), то всё ок - сущность Photo сохраняю в поле thumbnail. Если нет, то ничего не делаю.
Но это как-то криво, нужна же валидация, чтобы пользователь понимал, в чём дело? Ок, сделал валидатор IsPhotoUri. Но затупил и не подумал о том, что значение-то валидируется после того, как маппится в сущность. Получается, нужно дважды валидировать сперва в сеттере, затем в валидаторе?
Короче что-то не могу найти конец, за который потянуть, чтобы эту ситуацию распутать. Подскажите, пожалуйста.
Если фото только твои загруженые на сервак, то лучше создать таблицу с файлами и ликовать их в сущность Альбом
Виктор
kakoi-to-noob
завязываться на абсолютные ссылки точно не вариант, домены могут меняться, ссылка на id картинки наиболее оптимальна
kakoi-to-noob
пользователь пошарился по своей галереи, выбрал файл и назначил для превью альбома
Михаил
Всем привет! Не очень понимаю, как реализовать следующую логику (или так делать вообще не стоит?).
Есть сущность Album. У данной сущности есть свойство thumbnail, представляющее собой ManyToOne с сущностью Photo.
Есть форма редактирования альбома. В ней есть поле "Обложка", где отображается ссылка на текущую обложку в виде URI (например https://localhost:3000/photo/Fotografiya-1). Чтобы изменить обложку, нужно, соответственно, просто открыть нужную фотографию, скопировать ссылку и вставить в это поле.
Собственно, что мне непонятно. Как правильно обработать юзер-инпут в этом поле?
Сперва в buildForm сделал getter и setter для этого поля. В сеттере проверял, что юзер-инпут - это ссылка, парсил её, и пытался найти соответствующее фото. Если репозиторий возвращал не null (фото существует), то всё ок - сущность Photo сохраняю в поле thumbnail. Если нет, то ничего не делаю.
Но это как-то криво, нужна же валидация, чтобы пользователь понимал, в чём дело? Ок, сделал валидатор IsPhotoUri. Но затупил и не подумал о том, что значение-то валидируется после того, как маппится в сущность. Получается, нужно дважды валидировать сперва в сеттере, затем в валидаторе?
Короче что-то не могу найти конец, за который потянуть, чтобы эту ситуацию распутать. Подскажите, пожалуйста.
Юзер открывает нужное фото и копирует ссылку и потом вставляет …
Вот на этом моменте пользак засыпает и просто уходит.
А ещё хорошее подспорье для хацкеров, вставить ссыль на свг с пейлоадом итд.
Виктор
Так я же не ссылку сохраняю. Что-то вроде такого:
$path = parse_url($value, PHP_URL_PATH);
$slug = $path[2];
$photo = $this->photoRepository->findOneBy(['slug' => $slug]);
Виктор
Как, в таком случае, лучше поступить? Мне данный способ показался наиболее простым. Нашёл фото, которое тебя устроит, и воткнул ссылку. Вставлять id (слаг в моём случае) фотографии? Так это ещё геморнее для пользователя - нужно его так же в адресе выделить, потом вставить.
Павел
Павел
Сделайте связь и всё
Виктор
У меня есть связь, я же писал)
Виктор
class Album
{
#[ORM\ManyToOne]
private ?Photo $thumbnail = null;
}
Михаил
Ну в любом случае проще сделать так, что бы у каждого фото было 3 точки со скрытыми ивентами (удалить, открыть оригинал, сделать фотом альбома)
Ну и всё, пользак нажал на «сделать фотом альбома» и внутри этого экшона присвоил айдишник
Михаил
Павел
Ну либо упарываться в функционал форм, может свой компонент для форм написать