追記
2019/08/30
こちらの記事ですが、元々仕事で使ってる deployer のレシピがいささか古く、最近これが最新のものにアップデートされたことで、以前は 5.6 以降では実行されていなかった artisan optimize
が 5.7 以降では実行されるよう変更されていたため起きた現象でした。
deployer のレシピは随時アップデートするなり更新チェックするなりした方がよさそう。
deployer に限った話ではないですが。
環境
- PHP 7.1
- Laravel 5.7.28
起きた現象
artisan route:cache
を実行した時に出た。
ルーティング中にクロージャがあるとキャッシュできないよ、という例外メッセージ。
[LogicException]
Unable to prepare route [foobar] for serialization. Uses Closure.
解決方法
こんな感じの記述が routes/api.php
とか routes/web.php
にあったら
Controller を呼び出す形に直してあげる必要がある。
// Before
Route::get('/user', function (Request $request) {
return $request->user();
});
// After
Route::get('/user', 'MyController@user');