0
votes

Pourquoi une table est-elle mise à jour et l'autre pas à Laravel?

Lorsque je clique sur le bouton Modifier, j'essaie d'apporter des données de deux tables et de les mettre à jour ensemble. L'une est la table des utilisateurs et autre sur la table de détail de l'utilisateur. Lorsque je mettez à jour les informations, la table des utilisateurs est mise à jour mais la table user_detail ne se met pas à jour en créant une nouvelle ligne. Comment résoudre ce problème?

Le même code fonctionne pour une table alors qu'il ne fonctionne pas pour l'autre. p>

Ceci est ma fonction de mise à jour. P>

public function update(Request $request, $id)
       {
         // $this->validate($request,[
         //     'title'=>'required',
        //     'body'=>'required',
        // ]);
     //$user=new User;
     $user = User::find($id);
     $user->student_no=$request->input('student_no');
     $user->email=$request->input('email');
     $user->save();

     $user_detail=new Profile;
     $user_detail = Profile::find($id);
     $user_detail->student_no=$request->input('student_no');
     $user_detail->profile_pic=$request->input('CID');
      $user_detail->CID=$request->input('CID');
      $user_detail->DOB=$request->input('DOB');
      $user_detail->mobile_no=$request->input('mobile_no');
      $user_detail->joining_year=$request->input('joining_year');
      $user_detail->graduation_year=$request->input('graduation_year');
      $user_detail->program_id=$request->input('programe_id');
      $user_detail->work_experience=$request->input('work_experience');
      $user_detail->save();

     return redirect('/dashboard')->with('success','Post Updated');


2 commentaires

Quelle valeur l'appel sur "Enregistrer" le retour pour le profil? Cela peut être échoué sans erreur.


dd ($ user_detail) après cette ligne $ user_detail = profil :: Recherche ($ id);


5 Réponses :


1
votes

Supprimer la ligne,

public function update(Request $request, $id)
       {
         // $this->validate($request,[
         //     'title'=>'required',
        //     'body'=>'required',
        // ]);
     //$user=new User;
     $user = User::find($id);
     $user->student_no=$request->input('student_no');
     $user->email=$request->input('email');
     $user->save();

    $user_detail = Profile::where('user_id','=',$id)->first();
     $user_detail->student_no=$request->input('student_no');
     $user_detail->profile_pic=$request->input('CID');
      $user_detail->CID=$request->input('CID');
      $user_detail->DOB=$request->input('DOB');
      $user_detail->mobile_no=$request->input('mobile_no');
      $user_detail->joining_year=$request->input('joining_year');
      $user_detail->graduation_year=$request->input('graduation_year');
      $user_detail->program_id=$request->input('programe_id');
      $user_detail->work_experience=$request->input('work_experience');
      $user_detail->save();

     return redirect('/dashboard')->with('success','Post Updated');


1 commentaires

@Dilusha_dasanyaka merci beaucoup. Cela a fonctionné parfaitement. J'avais un autre doute. Si tu pouvais m'aider?



0
votes
  1. Supprimer $ user_detail = nouveau profil;
  2. Utilisez des relations pour mettre à jour les détails de l'utilisateur.
  3. Lire environ $ Demande-> Tous () et Assignement de masse à Laravel.
  4. Créez la validation de formulaire dans des fichiers séparés.

0 commentaires

0
votes

$ user_detail = profil :: trouver ($ id); Dans cette ligne, vous vérifiez les données de profil avec la clé principale de la table de profilé qui pourrait n'exister peut-être pas

vous pouvez essayer avec xxx


0 commentaires

0
votes

Vous devez supprimer la ligne $ user_detail = nouveau profil; code> et mettre à jour la ligne $ user_detail = profil :: Rechercher ($ ID); code> comme suivant

$user_detail = Profile::where('user_id',$id)->first()


0 commentaires

0
votes

Il y a deux trois choses avec votre requête.

$user_detail=new Profile;
$user_detail = Profile::find($id);


0 commentaires