2017-11-05 20 views
0

キャッシュに完全なページビューを保存しようとしましたが、 "Closure'のシリアライズができません"というエラーが発生しました。私はしばらく ...私は、その理由を知っているので、それを見つけるためにGoogleにしようとしたが、Googleの検索結果は、私が望んでいたまさにませんでしたしませんでしたlaravel 5.5キャッシュエラー "Closure 'のシリアライズが許可されていません"

$view = Cache::remember('articles_index', 5, function() { 
    return view('template.blade.php'); // this is some rendered html string 
}); 

:コントローラに私のコードは次のようなものでした一時的な解決策を見つける。

$view = Cache::remember('articles_index', 5, function() { 
    return htmlspecialchars(view('template.blade.php')); 
}); 

このキャッシュ方法は動作しますが、htmlの一部が破損する可能性があります。 はまだ完璧な解決策を見つけるためにしようと...

この質問は数回更新することができ...

答えて

2

あなたの最初の例ではViewオブジェクトではなく、HTML(文字列)をキャッシュしようとしています。ビューをレンダリングして文字列出力に変換する必要があります。

(string) view(...)またはview(...)->render()は文字列を与えます。

ルートからビューを返すとき、ラーベルはそれらをレンダリングすることを知っています。

+0

作品...ありがとうございました。 –

関連する問題