スイーツ(笑)と呼ばないで!!
| |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
11/24/08:02 [PR] |
05/26/12:55 クエリストリング? 懐かしい響き!!Laravelはクエリストリングについてあれこれ考える必要はありません!!
例えば、詳細な検索条件を入力して検索して表示される一覧画面。 ここから詳細画面とか他の画面に行って、その後またこの一覧画面に戻りたい、そんな時ありますね。 さて、複雑な条件保持するのどうしましょうか? クエリストリング(?param1=abc¶m2=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というのが用意されていますね。 ソースを見るといろんなことがわかりますね。 皆さん、ガリガリ書くのではなく、バリバリとソースコードを読むことに時間を使いましょう!! PR
|
|
|