尝试在单个函数中使用更新和创建的问题
Issues trying to use Update and Create in a single function
我想为一个 table 创建一行,但要更新另一个 table 中的一列,为此我同时使用 update()
和 create()
,但是无论我怎么记下来,它总是以同样的错误结束。
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = User::update([
'status' => '1'
]);
$infocreate = Personal::create([
'user_id' => Auth::user()->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
我需要它来重定向到用户详细信息页面并获得他们的信息 added/altered。我希望有人能够帮助我解决这个问题。
您试图在不传递用户 ID 的情况下更新用户,这肯定会出错。
试试这个:
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = User::find($user->id);
$userupdate->status = '1';
$userupdate->save();
$infocreate = Personal::create([
'user_id' => $user->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
也许试试这个
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = $user->update([
'status' => '1'
]);
$infocreate = Personal::create([
'user_id' => $user->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
而不是 static
调用 User
模型,使用相同的对象。
$user = Auth::user();
$updateUser = $user->update('status' => '1']);
此外,您可以使用 save
方法。
$user = Auth::user();
$user->status = '1';
$user->save();
您有 laravel createOrUpdate() 函数。
如果您使用 update() 更新行,则需要指定要更新的内容。
您想使用 User::update() 更新用户,但如果您这样做,模型不知道哪个用户
User::find(1)->update() or User::where('name', 'test')->update()
它会知道的。
或者你的情况
$user = Auth::user();
$user->update([
'status' => '1'
]);
我想为一个 table 创建一行,但要更新另一个 table 中的一列,为此我同时使用 update()
和 create()
,但是无论我怎么记下来,它总是以同样的错误结束。
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = User::update([
'status' => '1'
]);
$infocreate = Personal::create([
'user_id' => Auth::user()->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
我需要它来重定向到用户详细信息页面并获得他们的信息 added/altered。我希望有人能够帮助我解决这个问题。
您试图在不传递用户 ID 的情况下更新用户,这肯定会出错。
试试这个:
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = User::find($user->id);
$userupdate->status = '1';
$userupdate->save();
$infocreate = Personal::create([
'user_id' => $user->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
也许试试这个
public function createuserinfo(Request $request)
{
$user = Auth::user();
$userupdate = $user->update([
'status' => '1'
]);
$infocreate = Personal::create([
'user_id' => $user->id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
'address' => $request->address,
'zipcode' => $request->zipcode,
'city' => $request->city,
'phone_number' => $request->phone_number,
'ss_number' => $request->ss_number,
'document_number' => $request->document_number,
'license_number' => $request->license_number,
'expiration_date' => $request->expiration_date,
'employer' => $request->employer,
'jobtitle' => $request->jobtitle,
'contract' => $request->contract,
'start_date' => $request->start_date,
'general_practitioner' => $request->general_practitioner,
'dentist' => $request->dentist,
'health_insurance' => $request->health_insurance,
'contact_one_name' => $request->contact_one_name,
'contact_one_relation' => $request->contact_one_relation,
'contact_one_address' => $request->contact_one_address,
'contact_one_zipcode' => $request->contact_one_zipcode,
'contact_one_city' => $request->contact_one_city,
'contact_one_phone_number' => $request->contact_one_phone_number,
'contact_two_name' => $request->contact_two_name,
'contact_two_relation' => $request->contact_two_relation,
'contact_two_address' => $request->contact_two_address,
'contact_two_zipcode' => $request->contact_two_zipcode,
'contact_two_city' => $request->contact_two_city,
'contact_two_phone_number' => $request->contact_two_phone_number
]);
return $userupdate . $infocreate . redirect()->route('users.details');
}
而不是 static
调用 User
模型,使用相同的对象。
$user = Auth::user();
$updateUser = $user->update('status' => '1']);
此外,您可以使用 save
方法。
$user = Auth::user();
$user->status = '1';
$user->save();
您有 laravel createOrUpdate() 函数。 如果您使用 update() 更新行,则需要指定要更新的内容。
您想使用 User::update() 更新用户,但如果您这样做,模型不知道哪个用户
User::find(1)->update() or User::where('name', 'test')->update()
它会知道的。
或者你的情况
$user = Auth::user();
$user->update([
'status' => '1'
]);