0
我目前有两个表,即存储用户和客户端。客户与用户以一对一的关系关联。Laravel创建并更新与外部关系的模型
我目前存储和更新,像这样的模型,但感觉非常笨拙...
public function store(Request $request)
{
$requestData = $request->all();
$user = new User();
$user->fill($requestData);
$user->save();
$client = new Client;
$client->fill($requestData);
$client->user()->associate($user);
$client->save();
return response()->json($client->toArray(), 201, ['id' => $client->id]);
}
public function update(Request $request, $id)
{
try {
$client = Client::findOrFail($id);
$user = User::findOrFail($client->fk_user);
} catch (ModelNotFoundException $e) {
return response()->json([
'error' => [
'message' => 'Client not found',
]
], 404);
}
$requestData = $request->all();
$user->fill($requestData);
$user->save();
$client->fill($requestData);
$client->user()->associate($user);
$client->save();
return response()->json($client->toArray(), 200);
}
有没有办法来重构这个以避免与用户和客户作为独立的模型工作。有没有办法填充客户端,然后填充父级用户模型?
只是想知道,谢谢!
也许通过提取一些逻辑,开始自己的方法,例如存储用户和客户端。然后你也可以重用它们。 您可能还会设置一些响应方法,因此您不需要在存储/更新方法中具有所有响应类型和状态代码垃圾。 –
啊好吧谢谢@IsakBerglind,但是在Laravel没有办法填补客户,然后在这种情况下填补用户或? – liamjnorman
您可以在客户端模型上添加该数据,将其发送给请求数据并保存。例如:$ client-> saveAndAssociateUser($ requestData); –