Laravel 8 多个模型到单个视图错误 $address 未定义
Laravel 8 multiple models to single view Error $address Not defined
我正在尝试使用 findOrNew() 在数据库中创建 2 行,但是当我使用用户模型中的 ID 创建另一个模型(地址)时,程序 returns 未定义变量 $address。我不知道我是否使用了正确的方法。您可以在下面查看我的方法。你能告诉我正确的方法或在哪里找到它吗?
2个模型一个视图:
看到你的方法中有什么返回未定义,因为它没有正确执行 findOrNew 方法, and this same
第二个是,如果您通过 post 传递值,所有内容都会在 $req 参数中找到您,只有在那里,如果您想要使用 id,您必须通过 $req 访问->id 如果你发送数据正确
第三个,我看到在视图方法中你传递了 3 个参数,而你应该只传递两个参数,第一个是视图的名称,第二个是你将传递给视图的数据的排列方式
public function detail(Request $req)
{
$user = User::firstOrNew($req->id);
$user->user_type_id = 1;
$user->name = $req->name;
$user->last_name = $req->last_name;
$user->email = $req->email;
$user->password = Hash::make(Str::random(8));
$user->save();
$address = UserAddress::firstOrCreate(['user_id' => $req->id]); //or maybe $user->id
return view('user.detail', [
'user' => $user,
'adderss' => $address
]);
}
最后您可能更喜欢使用 updateOrCreate 方法
public function detailV2(Request $req)
{
$user = User::updateOrCreate(
['id' => $req->id],
[
'user_type_id' => 1,
'name' => $req->name,
'last_name' => $req->last_name,
'email' => $req->email,
'password' => Hash::make(Str::random(8)),
]
);
$address = UserAddress::firstOrCreate(['user_id' => $user->id]);
return view('user.detail', [
'user' => $user,
'adderss' => $address
]);
}
我正在尝试使用 findOrNew() 在数据库中创建 2 行,但是当我使用用户模型中的 ID 创建另一个模型(地址)时,程序 returns 未定义变量 $address。我不知道我是否使用了正确的方法。您可以在下面查看我的方法。你能告诉我正确的方法或在哪里找到它吗?
2个模型一个视图:
看到你的方法中有什么返回未定义,因为它没有正确执行 findOrNew 方法,
第二个是,如果您通过 post 传递值,所有内容都会在 $req 参数中找到您,只有在那里,如果您想要使用 id,您必须通过 $req 访问->id 如果你发送数据正确
第三个,我看到在视图方法中你传递了 3 个参数,而你应该只传递两个参数,第一个是视图的名称,第二个是你将传递给视图的数据的排列方式
public function detail(Request $req)
{
$user = User::firstOrNew($req->id);
$user->user_type_id = 1;
$user->name = $req->name;
$user->last_name = $req->last_name;
$user->email = $req->email;
$user->password = Hash::make(Str::random(8));
$user->save();
$address = UserAddress::firstOrCreate(['user_id' => $req->id]); //or maybe $user->id
return view('user.detail', [
'user' => $user,
'adderss' => $address
]);
}
最后您可能更喜欢使用 updateOrCreate 方法
public function detailV2(Request $req)
{
$user = User::updateOrCreate(
['id' => $req->id],
[
'user_type_id' => 1,
'name' => $req->name,
'last_name' => $req->last_name,
'email' => $req->email,
'password' => Hash::make(Str::random(8)),
]
);
$address = UserAddress::firstOrCreate(['user_id' => $user->id]);
return view('user.detail', [
'user' => $user,
'adderss' => $address
]);
}