2016-09-27 9 views
0

私はLaravel 5.3を使用しています。モデルの関係を保存していますか?

私はこのような何か場合:

$posts->stats->num_users = 5; 
$posts->stats->save(); 

これは、これを達成するための正しい方法です:

$posts = Post::where('id', 1) 
    ->with('stats') 
    ->first(); 

それは同様に、stats関係を保存することは可能ですか?

+0

はあなたのコードの仕事をしていますか?なぜなら、それが正しいのではないのはなぜですか?熱心な読み込みは、単なるモデルインスタンスに加わるだけで、同じもので動作するので、 '$ posts-> stats'が更新したいモデルのインスタンスを返す限りです –

答えて

0

あなたがやるべき

$stats->update(['num_users'=> 5]); 

を値を更新する場合は、その

$posts = Post::where('id', 1) 
     ->with('stats') 
     ->first(); 

$stats = $post->stats; 

ような何かを行うことができます。

0

はい、可能です。

しかし、あなたの投稿オブジェクトに 'stats'リレーションがまだ作成されていない可能性があります。その場合は

、あなたはこのような何かを行うことができます:

//retrieve the post 
$post = Post::with('stats')->find(1); 

//use existing stats object or new up one 
$stats = $post->stats ?: new PostStats(['post_id' => $post->id]); 
$stats->num_users = 5; 

//persist 
$stats->save(); 
関連する問題