[解決済み] laravel Unable to prepare route ... for serialization. クロージャを使う
2023-01-22 05:57:44
質問
Laravel5.2プロジェクトでキャッシュをクリアすると、このエラーメッセージが表示されます。
[LogicException] (ロジック例外) Unable to prepare route [panel] for serialization. クロージャを使用しています。
ルートと関連していると思われる
Route::get('/article/{slug}', 'Front@slug');
は、コントローラ内の特定のメソッドに関連付けられます。
public function slug($slug) {
$article = Article::where('slug',$slug)->first();
$id = $article ->id_article ;
if ( ($article=== null) || (is_null($id)) ) return view('errors/Db');
else return view('detail')->with(array('article'=> $article, 'title'=>'My title - '.$article->title));
}`
要するに、マスタービューから、記事へのショートリンクである$slugを渡して、データベース内でユニークな$slugで、レコードを識別し、その内容を詳細ビューに渡しているのです。
このメソッドを書いたときは何の問題もなく、実際、魅力的に動作しましたが、キャッシュをクリーンアップした後、私はこのエラーを取得し、マスタービューのリンクはショートコードを表示しません。
私はどこで間違っているのでしょうか?
どうすればよいのでしょうか?
<ブロッククオートルートが関係していると思います。
Route::get('/article/{slug}', 'Front@slug');
は、コントローラ内の特定のメソッドに関連付けられます。
いいえ、そうではありません。エラーメッセージは
route:cache
コマンドによるもので、なぜキャッシュをクリアすると自動的にこのコマンドが呼び出されるのかは不明です。
問題は、コントローラの代わりにクロージャを使用したルートで、以下のようなものです。
// Thats the Closure
// v
Route::get('/some/route', function() {
return 'Hello World';
});
クロージャはシリアライズできないため、クロージャを使用するルートがある場合、ルートをキャッシュすることができません。
関連
-
[解決済み] Laravelでカスタムヘルパー関数を作成する方法
-
[解決済み] Laravel. リレーションを持つモデルでscope()を使用する
-
[解決済み] Laravel Eloquent - distinct() と count() が正しく動作しない。
-
[解決済み] E: パッケージ 'mysql-client' は docker compose を使った php-fpm イメージのビルドでインストール候補がない
-
[解決済み] Laravelで非キーカラムのフィールドに明確な値を取得する方法は?
-
[解決済み] Laravel Migrationsから特定のファイルをMigrateする
-
[解決済み] Laravel Eloquent - 1つの行を取得する
-
[解決済み] LaravelではbelongsToとhasOneのどちらを使うべきですか?
-
[解決済み] LaravelのBladeテンプレートで、レイアウトに変数を渡すには?
-
[解決済み] Laravel Eloquentのリミットとオフセット
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Laravelで「キャッシュのクリアに失敗しました。適切なパーミッションがあることを確認してください"
-
[解決済み] Laravel Eloquent - distinct() と count() が正しく動作しない。
-
[解決済み] Laravelで非キーカラムのフィールドに明確な値を取得する方法は?
-
[解決済み] パブリックディレクトリを取得するには?
-
[解決済み] Laravel Migrationsから特定のファイルをMigrateする
-
[解決済み] 2つのCarbon Timestampを比較するには?
-
[解決済み] Laravel Eloquent - 1つの行を取得する
-
[解決済み] LaravelではbelongsToとhasOneのどちらを使うべきですか?
-
[解決済み] Laravel コントローラ サブフォルダ ルーティング
-
[解決済み] Laravel 多対多のリレーションシップの保存/更新