我想建议如何处理,哪种方法最好。 隐式绑定或正常绑定方法。Laravel Implict Binding获取关于型号的查询结果
我正在使用Laravel路由隐式绑定。当我发布错误的ID,我得到错误没有查询结果模型如何处理控制器不是异常处理程序。现在我完成异常处理程序,但需要更好的解决方案来处理这个问题或避免隐式绑定。
//Web.php
Route::delete('/master/user/department/{department}/delete', ['as' => 'master.user.department.destroy', 'middleware' => 'permission:master.user.department.destroy', 'uses' => 'Master\User\[email protected]']);
//DepartmentContrller.php
public function destroy(Department $department)
{
try {
$department->delete();
return redirect(route('master.user.department.index'))->with('success', array(' Department Deleted successfully'));
} catch (Exception $e) {
return back()->with('criticalError', array($e->getMessage()));
}
}
//Handler.php
if ($exception instanceof \Illuminate\Database\Eloquent\ModelNotFoundException)
{
return redirect()->back()->with('custom_modal', ['Model Not Found Exception', $exception->getMessage()]);
}
下面的代码是完全正常工作,我想知道哪种方法是最好的。 //DepartmentContrller.php
public function destroy($id)
{
try {
$department=Department::find($id);
if($department){
$department->delete();
return redirect(route('master.user.department.index'))->with('success', array(' Department Deleted successfully'));
}
else{
return back()->with('criticalError', array('Department is not found.'));
}
} catch (Exception $e) {
return back()->with('criticalError', array($e->getMessage()));
}
}
当未找到记录时,Laravel find()将返回NULL。您可以使用is_null()来检查find方法的响应。 –