忍者ブログ

STEP UP BLOG

Home > ブログ > > [PR] Home > ブログ > Laravel4 > Laravel4でのリダイレクト指定

Laravel4でのリダイレクト指定

世間ではLaravel5のリリースが騒がれていますが、まだまだ案件で使用するには不安な点もあるので未だLaravel4で開発しています。
4から5は大幅に変わっているっぽいので、どこかで踏ん切りをつけて5にジャンプしたいですね。
というわけで今回はリダイレクトです。
Webサイトを作っているといろいろな場面でリダイレクトを使います。
当然Laravelにもリダイレクトの機構があり、しかもLaravelでは様々な書き方ができるので以下にまとめてみました。
// 普通にURLのルート以下を指定
// http://www.hoge.com/login にリダイレクト
Redirect::to('login');

// 識別名を付ける
Route::get('top', array('as' => 'home', 'uses' => 'TopController@index'));
// 識別名で指定して、 http://www.hoge.com/top にリダイレクト
Redirect::route('home');

// コントローラとアクションを指定してリダイレクト
Redirect::action('TopController@index');

// バリデーションエラーなどで入力も一緒にリダイレクト
Redirect::to('edit')->withInput();
// バリデーションエラーなどでエラーメッセージも一緒にリダイレクト
Redirect::to('edit')->withInput()->withErrors($validator);

最後の$validatorはMessageBagのインスタンスです。
http://laravel.com/docs/4.2/validation#error-messages-and-views
http://laravel.com/api/4.2/Illuminate/Support/MessageBag.html
これは、
$errors = new Illuminate\Support\MessageBag();
$errors->add('number', '整数で入力してください。');
Redirect::to('edit')->withInput()->withErrors($errors);

と好きなように作れます。
ビューでは、
@if ($errors->has('number'))
    {{{$errors->first('number')}}}
@endif

とすれば表示できるので活用してみてはいかがでしょうか。
PR

Comment0 Comment

Comment Form

  • お名前name
  • タイトルtitle
  • メールアドレスmail address
  • URLurl
  • コメントcomment
  • パスワードpassword

PAGE TOP