2017-08-05 6 views
0

J'ai une table appelée Diaries in my DB qui est liée à ma table Users. Un utilisateur peut avoir plusieurs journaux, mais un journal ne peut appartenir qu'à un seul utilisateur.Comment stocker correctement les données basées sur Id dans Laravel Eloquent

Je souhaite enregistrer des données sur une ligne de ma table Diaries en fonction de l'ID utilisateur. Lorsqu'un utilisateur se connecte, il peut remplir un formulaire qui appelle la méthode de sauvegarde à enregistrer sur la ligne dans les journaux correspondant à cet utilisateur. J'utilise Laravel's 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

Comparer avec l'exemple de [docs] (https://laravel.com/docs/5.4/eloquent-relationships#the-save-method). Vous utilisez id mais vous devez utiliser le modèle complet. – Tpojka

+0

vous devez également spécifier l'id_utilisateur pour le journal avant de l'enregistrer comme ceci: $ journal-> user_id = $ id ou $ journal-> user_id = Auth :: id(); et assurez-vous que le champ Diary $ fillable contient user_id. De plus, vous devez changer $ result = $ journal-> id-> save; à $ resultat = $ journal-> save(); – Naco

Répondre

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"; 
}