Вы можете добавить функцию newModel
в свой класс ресурсов nova:
<?php
use App\Post;
public static function newModel(): Post
{
$model = parent::newModel();
$model->a_property = '';
return $model;
}
Обратите внимание, что метод newModel()
вызывается до того, как Nova заполнит атрибуты, поступающие иззапрос, чтобы мы не получили $post_id
.Нам нужно использовать наблюдатель событий, чтобы заполнить значение после создания модели.
Сначала создайте Observer для Post
модель
$ php artisan make:observer PostObserver --model=Post
, затеммы можем поместить коды в метод created
<?php /* file: app/Observers/PostObserver.php */
use App\Post;
public function create(Post $post)
{
// Assume the relation is `user`:
$post->a_property = $post->user->a_property;
$post->save();
}
Кроме того, это решение в принципе может решить проблему, поэтому не рекомендуется хранить одно и то же значение в таблицах User
и Post
.