peketaminの日記

その辺のプログラマーのチラ裏です。

larave4 の ドキュメントを見ても Input クラスとか見つからなくて、どうやって trim しようと思ってたら

Facade で作られてるんだろうけど…どこ…? と思っていたら、

http://laravel.com/api/class-Illuminate.Support.Facades.Facade.html

にありました。 んで、

Input::all()

とかがない…と思ってたら、

http://laravel.com/api/class-Illuminate.Http.Request.html#_all

にありました。Http > Request > input() という感じの階層的な感じ。 まとめられるものはまとめて、ユーティリティ的な切り出しは Facade で作る、 という感じ。

むむ。 FuelPHP (Codeigniter 流?) のドキュメントは親切だったなぁ…。

さておき、フォームで入力値をリポピュレイトするときに、害がない範囲で trim するときなんかに、 どうしようと調べてたら、

@HiroKws さんの記事 "Laravel:ログイン・ログオフ3(フォームの処理)" にヒントがありました。(感謝!)

で、 app/filters.php

<?php
Route::filter('trim_inputs', function()
{
    $inputs = array_map('trim', Input::all());
    Input::replace($inputs);
});

みたいに書いて、 ルーティング app/routes.php に、

<?php
Route::post('login', array('uses' => 'UserController@login'))->before('trim_inputs');

とか書いておいて、view ファイルに

<?php
{{ Form::text('email',Input::old('email',''), array('required' => 'required')) }}

とか書いてあると、リポピュレイトされた値が trim されるようになった。

blade テンプレートでデフォルトの <title> と個別タイトルを @section で連結しようと思ったら、どうしても改行や空白が入ってしまって困ったり、まだ色々 laravel4 奮闘中…。 (Twig つかうといいのか?)

おしまい。