のクエリ結果がありません。どのように対処するか、どの方法が最適かをご提案します。 暗黙のバインドまたは通常バインドメソッド。Laravel Implict Binding haveモデル
私は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メソッドの応答をチェックできます。 –