User に 'a_property' という名前のプロパティがあり、Post が User に属しているとします。作成ページ (新しい投稿のユーザーが選択したユーザーに自動的に設定するページ) に投稿を追加するとき、ユーザーの a_property を投稿の b_value のデフォルト値として使用するにはどうすればよいですか?
質問する
502 次
3 に答える
0
newModel
nova リソース クラスに関数を追加できます。
<?php
use App\Post;
public static function newModel(): Post
{
$model = parent::newModel();
$model->a_property = '';
return $model;
}
Nova がリクエストからの属性を入力する前にnewModel()
メソッドが呼び出されることに注意してください。モデルが作成された後、イベント オブザーバーを使用して値を入力する必要があります。$post_id
$ 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
テーブルの両方に同じ値を格納することはお勧めできません。
于 2019-03-01T10:37:26.510 に答える