我想在更新laravel上的相关模型(1对1)时改进这段代码,也知道这是正确的,错误的,正确的但不推荐的,等等。谢谢所有人。
$user = User::find($id);
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->update();
$tenant = Tenant::where('user_id', $id)->first();
$tenant->suite_number = $request->input('suite_number');
$tenant->update();发布于 2016-08-26 11:54:32
首先,你必须在你的用户模型中定义用户和租户的关系:
// User.php
public function tenant()
{
return $this->hasOne('App\Tenant');
}由于这是一对一模型,您可以像下面这样更新相关模型。确保关系模型也存在。
$user = User::find($id);
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->tenant->suite_number = $request->input('suite_number');
$user->push();发布于 2016-08-26 00:29:13
我相信这可能是
// you can omit the input() if u want to
$user = User::find($id);
$user->update([
'name' => $request->name;
'email' => $request->email;
]);
$tenant = Tenant::where('user_id', $id)->first();
$tenant->update([
'suite_number' => $request->suite_number;
]);对于急切加载,它将是
$user = User::with('tenant')->find($id);
$user->update([
'name' => $request->name;
'email' => $request->email;
'tenant.suite_number' => $request->suite_number;
]);或反向关系
$tenant = Tenant::with('user')->where('user_id', $id)->first();
$tenant->update([
'suite_number' => $request->suite_number;
'user.name' => $request->name;
'user.email' => $request->email;
]);https://stackoverflow.com/questions/39150334
复制相似问题