Encoders, ну так пихаете в DTO и в валидатор, дальше всё сделает симфони.
Не может быть данных без типов, максимум массивы, но и их можно провалидировать на нужные типы.
sgidlev, contains срабатывает только в 1 случае, - когда известен первичный ключ.
А он может быть известен только при 2 условиях
1. Вы сами генерируете ключ
2. Вы используете ManyToMany или композитный ключ.
Ваша переменная $roomOwnerExist, что сейчас, что до этого ($renterExists) делает лишнее действие.
Вам она не нужна, вы можете в foreachв if сразу выполнять что нужно и потом вызывать return.
Вообще-то JS - это плохой выбор среди языков программирования - самое дно.
Если вам кто-то посоветует идти в JS - плюньте ему в лицо. Я не знаю другого языка, в котором было бы столько фреймворков и библиотек на решение одной и той же задачи.
Если в php всего 3 основных фрейморвка (на самом деле 2, yii уже почти сдал все позиции, только легаси), то в любой другом языке смело умножайте это значение на 3, а в JS вообще на все 5 или даже 10.
flymetothem00n, опыт получите т.к drupal под капотом Symfony, и они стараются обновлять его до последних версий. А Symfony - это Энтерпрайз в мире php.
Курите доку, https://www.doctrine-project.org/projects/doctrine...
Мне так же лень, как вам лень благодарить людей за проделанную работу :). Могу сказать, что в документации точно описано как это делать, но т.к вы очень не благодарны, то от меня вы получите только ссылку на доку.
так вы сами виноваты, у вас по дефолту $no_spam = true;
И всё достаточно не вызывать срабатывания проверки на изменения на false. Как два пальца об асфальт.
Не может быть данных без типов, максимум массивы, но и их можно провалидировать на нужные типы.