Laravel: правила целостности для модели с отношениями hasMany - PullRequest
0 голосов
/ 21 октября 2019

Случай: мне нравится создавать модели с правилами целостности, потому что мы работаем только с одним независимым контроллером для всех приложений. Также мы работаем с большим количеством команд. По этим и другим причинам, Мне бы хотелось, чтобы при сохранении модели она подтверждала себя .

Проблема возникает в отношениях 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. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...