2017-08-05 147 views
0

我有一張名爲「我的數據庫中的Diaries」的表格,該表格鏈接到我的「用戶」表。用戶可以有許多日記,但日記只能屬於一個用戶。如何在Laravel Eloquent上正確存儲基於Id的數據

我想根據用戶ID將數據保存到我的Diaries表中的一行。當用戶登錄時,他可以填寫調用save方法的表單以保存到與該用戶對應的日記中的行。

我正在使用Laravel的身份驗證。

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 $可填充字段包含user_id。你也必須改變$ result = $ diary-> id-> save; to $ 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"; 
} 
相關問題