Случай: мне нравится создавать модели с правилами целостности, потому что мы работаем только с одним независимым контроллером для всех приложений. Также мы работаем с большим количеством команд. По этим и другим причинам, Мне бы хотелось, чтобы при сохранении модели она подтверждала себя .
Проблема возникает в отношениях hasMany, потому что нам нужно сохранить первого родителя и следующего потомка.
Например:
class Car extends Model
{
public static function boot()
{
parent::boot();
static::saving(function ($car) {
if (!$car->builder) {
throw new \Exception('Woops! Cars requires a builder company.');
}
if ($car->wheels()->cuont() < 1) {
throw new \Exception('Woops! Cars require a wheel.');
}
});
}
/** */
}
$car = new Car();
$car->save(); // great! fails because dont have a builder
$wheel = Wheel::create();
$car = new Car();
$car->builder = 'Some builder';
$car->wheels()->save($wheel); // ouch! this fails because we need save Car first
Конечно, пример был упрощен,Я работаю с чертами характера и агностиком. Все отлично работает, но я не могу найти лучший способ проверки hasMany. Есть идеи?