Я хочу сохранить дополнительную запись в базе данных при сохранении модели в laravel, моя модель выглядит следующим образом:
class Document extends Model
{
use DocumentSetup;
}
И моя черта выглядит так:
trait DocumentSetup {
protected static function boot()
{
static::saving(function ($model) {
$documentSetup = new DocumentSetup();
$documentSetup->document_id = $model->id;
$documentSetup->is_public = false;
$documentSetup->need_verification = true;
$documentSetup->save();
});
parent::boot();
}
}
Если я пытаюсь не получить никаких ошибок, но документ или документ не создаются, кто-нибудь знает, что я делаю здесь неправильно?
Моя идея заключается в создании этой дополнительной модели при сохранении …
При использовании признаков для ловушек жизненного цикла Eloquent необходимо указать метод загрузки boot[traitName]
в твоем случае bootDocumentSetup
, Вы также должны удалить parent::boot()
вызов в черту, так как нет такого родительского вызова. Если вы назовете это так, это будет работать.
Это сделано для того, чтобы избежать конфликтов, когда вы используете одну или несколько черт в модели, каждая из которых имеет свой собственный метод загрузки.
Других решений пока нет …