Работаю над своим небольшим проектом, использую Laravel и Doctrine как основную ORM. Doctrine была выбрана только с целью получить опыт работы с ней. Для миграций, принял решение использовать встроенные в laravel средства.
Собственно вопрос: когда определяешь Entity
, обязательно ли указывать опции в аннотациях, которые были заданы в миграциях(тип, длины строки, nullable ...)?
Как я понял: эти опции используются только при генерации таблиц. Или все же, doctrine как-то контролирует целостность в runtim'e?
Она контроллирует, допустим у вас есть модель User
с полем $name
, ассертами указано, что оно не должно быть пустым и представляет собой строку. Теперь при попытке записать туда пустую строку или запихнуть массив, вы получите Doctrine\DBAL\Exception
, которое можно перехватить и выдать красивую ошибку о неверных данных
Добрый деньИмеется 3 числа, например (20, 125, 25) Нужно запустить рандом, чтобы выпадало одно из этих чисел