@siRius32

Использовать паттерн Builder для полей модели в Laravel?

1. Необходимо создавать модель с определенными полями и выполнять проверки, перед сохранением, в условиях которых запросы других данных и т.п., использование паттерна builder в таком случае хорошая идея? т.е. устанавливаем поля в методах builder->setЧтото() и в последнем методе builder->save() выполнять проверку перед сохранением или выбрасывать исключение, если проверка не прошла.
2. Изменять существующую модель, передавая в конструктор ид модели
Builder($id = null) {
$this->model = $id ? Model::findOrFail($id) : new Model();
}

Делается так вообще?
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 2
@the5x
Builder используете, когда вам надо несколько условий для определенного запроса. Например GET запрос с несколькими параметрами. Например выборка продукта из БД по цвету, размеру, наличии и тд. Проверяете каждый входящий request. Вот пример использования:

https://timacdonald.me/dedicated-eloquent-model-qu...
Ответ написан
Комментировать
@jazzus
Вначале лучше изучить паттерн "примеры из документации", а потом уже бест-практики из Интернета, пакеты и др. велосипеды)
$this->model = $id ? Model::findOrFail($id) : new Model();

Для какой логики сия схема непонятно. Похоже на firstOrCreate и тогда в Ларавел есть одноименный метод. Если это типа метод show, то нужно юзать Model Binding
И там не нужно проверять никакие id и findOrFail идет вкомплекте. Примеры хороших роутов/методов/наименований есть в ресурсных контроллерах/маршрутах. Советую посмотреть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы