画像のグループ(バナー)を表示するシンプルなアプリケーションを作成したいときや、ページがリロードされたときに、 。Laravel Sessions:ページをリロードする(リフレッシュ)画像の他のグループを表示する
各画像には、整数であるorder
というプロパティがあります。 たとえば、ホームページを初めて開くときは、order
の値が[1、3、5]の3つの画像が表示されます。ページをリロードした後、order
の値が[2、4、6]のイメージが表示されます。ページをもう一度開くと、order
の値が[1、3、5]の画像が再度表示されるはずです。そしてそうで...だから
、基本的には、order
の値[1、3、5]との画像[2、4、6]は、すべてのページのリロードに切り替える必要があります。私は次のことを試してみた私のコントローラで
:
public function index() {
if (!\Session::has('top_order')) {
$top_banners = TopBanner::where('position', 'top')
->whereIn('order', [1, 3, 5])
->orderBy('order')
->get();
\Session::put('top_order', [2, 4, 6]);
} else {
$next_orders = \Session::get('top_order');
$top_banners = TopBanner::where('position', 'top')
->whereIn('order', $next_orders)
->orderBy('order')
->get();
if ($next_orders[0] == 1) {
for ($i = 0; $i < count($next_orders); $i++) {
$next_orders[$i]++;
}
} else {
for ($i = 0; $i < count($next_orders); $i++) {
$next_orders[$i]--;
}
}
\Session::put('top_order', $next_orders);
}
return view('welcome')->with('top_banners', $top_banners);
}
しかし、いくつかの理由で、画像をトグルされていません。 elseブロックに表示されているように、ページがリロードされたとき(HTTPリクエストが送信され、コントローラのindex
メソッドが実行されたとき) - まず、'top_order'
セッションから、次のグループの画像を表示します:
$next_orders = \Session::get('top_order');
... 'top_order'
セッションを更新したい - その値を他の注文グループに設定したい。 'top_order'
セッションの現在の値があれば、[1、3、5] - 次いでにアップデート[2 4 6]:
if ($next_orders[0] == 1) {
for ($i = 0; $i < count($next_orders); $i++) {
$next_orders[$i]++;
}
}
...とIF電流値'top_order'
セッションがある[2、4、6] - 次いでにアップデート[1、3、5]:最後
else {
for ($i = 0; $i < count($next_orders); $i++) {
$next_orders[$i]--;
}
}
、保存:
\Session::put('top_order', $next_orders);
しかし、それはうまくいかず、何が間違っているのか分かりません。 'top_order'
セッションが[2、4、6]に設定されると、そこにとどまり、ページを更新した回数に関係なく、そのグループの画像のみが表示されます。
あなたのコードを整理することができます – xhulio