【发布时间】:2017-02-07 07:05:43
【问题描述】:
我想要建议如何处理以及哪种方法最好。 隐式绑定或普通绑定方法。
我正在使用 Laravel 路由隐式绑定。当我发布错误的 ID 时,我收到错误 No query results for model 如何在控制器中处理而不是 Exception Handler。现在我完成了异常处理程序,但需要更好的解决方案来处理这个或避免隐式绑定。
//Web.php
Route::delete('/master/user/department/{department}/delete', ['as' => 'master.user.department.destroy', 'middleware' => 'permission:master.user.department.destroy', 'uses' => 'Master\User\DepartmentController@destroy']);
//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()));
}
}
//处理程序.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 方法的响应。
标签: php laravel laravel-5 eloquent laravel-routing