我的响应表中的group
列的默认值为"city"。我下面的代码会进行查找以查看默认值是否应该输入...或其他一些值;
$group = Group::where('token', $request->input('groupToken'))->first();
$group = ($group ? $group->value : 'city');
$response = Response::create([
'token' => $token,
'group' => $group,
]);
理想情况下,我想摆脱这条$group = ($group ? $group->value : 'city');
行,如果Group::where
返回 null,则不要$group
传递给 create()
方法。
这是怎么做到的?
试试这个:
$group = Group::where('token', $request->input('groupToken'))->first();
$data['token'] = $token;
if($group != null){
$data['group'] = $group->value;
}
$response = Response::create($data);
您可以使用
firstOrFail()
并将其包装在try-catch
中,而不是->first()
,如果没有返回,那么它将抛出一个ModelNotFoundException
。
类似的东西(未经测试):
$data['token'] = $token;
try {
$group = Group::where('token', $request->input('groupToken'))->firstOrFail();
$data['group'] = $group;
} catch (ModelNotFoundException $ex) {
// Handle exception
}
$response = Response::create(
$data
);