12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel 特定のフィルタだけを外す

Posted at

ファンクショナルテストなどを書く際に、authフィルタは活かしたいけど、csrfフィルタは外したいという場合があります。

下記のようにEvent::forget()で、該当フィルタのイベントを削除すると、該当フィルタだけを外すことができます。

Route::enableFilters(); // テストでフィルタを有効化
Event::forget('router.filter: csrf'); // csrfフィルタを削除

'router.filter: ' + フィルタ名で、イベントを指定します。(フィルタ名の前には半角スペースが必要)

フィルタ名には、app/filters.phpで定義しているRoute::filter()の第一引数です。

Route::filter('csrf', function () {
    if (Session::token() != Input::get('_token')) {
        throw new Illuminate\Session\TokenMismatchException;
    }
});
12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?