【Laravel】findOrFail、firstOrFail系のメソッドの例外を捕捉する

Exception $e で補足しようとして失敗したのでメモ。

例外を捕捉したいコントローラに、以下の名前空間を登録すれば、
ModelNotFoundExceptionで捕捉出来るようになります。

use Illuminate\Database\Eloquent\ModelNotFoundException;

例:userコントローラで捕捉したい場合

use Illuminate\Database\Eloquent\ModelNotFoundException;

class UsersController extends Controller
{

・・・

try {
    Model::findOrFail(1);
} catch (ModelNotFoundException $e) {
    // 例外時の処理
}

通常は捕捉しなければ404ページが表示されますが、
例えば捕捉すればリダイレクト先を変えることも可能です。

try {
    Model::findOrFail(1);
} catch (ModelNotFoundException $e) {
    return redirect('fail');
}

参考:マニュアル Not Found例外 の項目
https://readouble.com/laravel/5.6/ja/eloquent.html

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク