当我单击“编辑”按钮时,我试图从两个表中获取数据并将它们一起更新。一个是用户表,另一个是用户明细表。 当我更新信息时,用户表正在更新,但用户表未更新而正在创建新行。该怎么解决?
相同的代码适用于一个表,而不适用于另一个表。
这是我的更新功能。
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');
用户表正在更新,但user_detail未更新。
答案 0 :(得分:1)
删除行,
$user_detail=new Profile;
并排
$user_detail = Profile::find($id);
在这里你不能这样。你必须要做类似的事情
$user_detail = Profile::where('user_id','=',$id)->first();
然后您的代码应如下所示,
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 :(得分:0)
$user_detail=new Profile;
$request->all()
和Mass Assignment
。答案 2 :(得分:0)
$ user_detail =配置文件:: find($ id); 在这一行中,您正在使用概要文件表的主键检查概要文件数据,该主键可能不存在
您可以尝试
$user_detail = Profile::where('user_id',$id)->first();
user_id is the fk on profiles table from user id.
答案 3 :(得分:0)
您应删除第$user_detail=new Profile;
行
并如下更新第$user_detail = Profile::find($id);
行
$user_detail = Profile::where('user_id',$id)->first()
答案 4 :(得分:0)
您的查询有两三件事。
$user_detail=new Profile;
$user_detail = Profile::find($id);
首先不需要 新个人资料 行。它只是创造了一个新对象,但您无需再去更新某人的个人资料, 现在打印您的第二行响应,以免收到任何响应,它也是正确的,因为您的发现ID不是user_id。 否则就没有问题。 希望您能找到解决方法。