2017-08-05 1 views
0

自分のユーザーテーブルにリンクされている自分のDBにDiariesというテーブルがあります。ユーザーは多くのダイアリーを持つことができますが、ダイアリーは1人のユーザーにしか属しません。Laravel EloquentのIdに基づいてデータを正しく保存する方法

ユーザーIDに基づいて自分の日記表の行にデータを保存します。ユーザーがログインすると、saveメソッドを呼び出すフォームに記入して、そのユーザーに対応するダイアリーの行に保存することができます。

私はLaravelのAuthを使用しています。

public function save(Request $request) 
    { 

$id = Auth::id(); 
$error = $request->error; 
$fix= $request->fix; 


$diary = new Diary(); 
$diary->error = $error; 
$diary->fix=$fix; 
$result = $diary->id->save; 

if($result==true) 
{ 
    echo "saved"; 
}else{ 
    echo "not saved"; 
} 
+0

は、[ドキュメント](https://laravel.com/docs/5.4/eloquent-relationships#the-save-method)の例と比較してください。 IDを使用していますが、完全なモデルを使用する必要があります。 – Tpojka

+0

このように保存する前に、ダイアリーのuser_idも指定する必要があります。$ diary-> user_id = $ idまたは$ diary-> user_id = Auth :: id(); とし、Diary $ fillableフィールドにuser_idが含まれていることを確認してください。また、$ result = $ diary-> id-> saveを変更する必要があります。 $ result = $ diary-> save();を実行します。 – Naco

答えて

0
public function save(Request $request) 
    { 
$result = $request->user()->diaries()->create([ 
'error' => $request->error, 
'fix' => $request->fix, 
]); 

// you should have "diaries" relation in User model and setup fillables for Diary 

if($result==true) 
{ 
    echo "saved"; 
}else{ 
    echo "not saved"; 
} 
関連する問題