忍者ブログ

スイーツ(笑)と呼ばないで!!

NEW ENTRY
10 2024/11 1 23 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30 12

11/24/08:02  [PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

05/26/12:55  クエリストリング? 懐かしい響き!!

Laravelはクエリストリングについてあれこれ考える必要はありません!!

例えば、詳細な検索条件を入力して検索して表示される一覧画面。

ここから詳細画面とか他の画面に行って、その後またこの一覧画面に戻りたい、そんな時ありますね。

さて、複雑な条件保持するのどうしましょうか?

クエリストリング(?param1=abc&param2=defとか)を文字列として扱う?

そんなコードを見かけます。

Laravelならそんなことは不要です。

Laravelなら検索条件がpostされた時点でInput::all()とすればすべてのパラメータが連想配列で取得できますね。

これは皆さんご存知だと思います。

この配列を例えばセッションにsearch_paramsというキーで保存していたとします。

そして、他のアクションで処理が終わって同じ一覧に戻りたいとした場合、

return Redirect::action(‘ArticlesController@index’,Session::get(’search_params’));

この1行で済みますね。

え?「アクションのreturnじゃなくて、画面にリンクを表示したいです」って?

はい。そんな時も簡単です。

Laravelにはactionというヘルパー関数があります。

action(‘ArticlesController@index’,Session::get(’search_params’))

と書けば、クエリストリング付きのリンクのURLが取得できますね。

さあ、皆さん、もうクエリストリングについて思い悩むことはやめましょう。

あなたは自由です^^

ちなみに、Laravelのソースコード読むとわかりますが、第二引数のSession::get(’search_params’)がnullの場合、defaultとして空の配列が渡るので、ちゃんとLaravelは動いてくれます。


Laravelって便利ですねー

ちなみに、いろんな場所から飛んできて、前の画面に戻りたいけどケースによって変わる、そんなケースはどうします?

Laravelには、refererを見て判断してくれるRedirect::backというのが用意されていますね。


ソースを見るといろんなことがわかりますね。
皆さん、ガリガリ書くのではなく、バリバリとソースコードを読むことに時間を使いましょう!!

拍手[1回]

PR
URL
FONT COLOR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS

TRACKBACK

TRACKBACK-URL