1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravelでリダイレクトを使う

Last updated at Posted at 2020-05-13

目次

Laravelの記事一覧は下記
PHPフレームワークLaravelの使い方

Laravelバージョン

動作確認はLaravel Framework 7.19.1で行っています

前提条件

eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

Controllerにメソッド追加

(1) /sample/app/Http/Controllers/SampleController.phpにredirect1メソッド、redirect2、redirect3メソッドを追記

    public function redirect1(Request $request)
    {
        return view('sample.redirect1');
    }

    public function redirect2(Request $request)
    {
        return redirect('sample/redirect3')->withInput();
    }

    public function redirect3(Request $request)
    {
        return view('sample.redirect3');
    }

redirect('sample/redirect3')でsample/redirect3にリダイレクトするRedirectResponseクラスのインスタンスが返ってきます。これをreturnするとリダイレクトされるのですが、
さらに、redirect2へのリクエストデータをredirect3でもold関数で使えるようにするためにwithInputを呼んでいます
withInputを実行すると、入力値が次のユーザーリクエストの処理中だけ利用できるフラッシュデータとしてセッションに保存されます

(2) /sample/routes/web.phpに下記を追記
Route::get('sample/redirect1', 'SampleController@redirect1'); Route::post('sample/redirect2', 'SampleController@redirect2'); Route::get('sample/redirect3', 'SampleController@redirect3');

viewの作成

(1) /sample/resources/views/sample/redirect1.blade.phpファイル作成

redirect1.blade.php
<html>
    <head>
        <title>sample</title>
    </head>
    <body>

        <form action="{{ url('sample/redirect2') }}" method="post">
            @csrf
            <div>a<input type="text" name="a" value="{{ old('a') }}"></div>
            <div>b<input type="text" name="b" value="{{ old('b') }}"></div>
            <div>c<input type="text" name="c" value="{{ old('c') }}"></div>
            <input type="submit" >
        </form>

    </body>
</html>

(2) /sample/resources/views/sample/redirect3.blade.phpファイル作成

redirect3.blade.php
<html>
    <head>
        <title>sample</title>
    </head>
    <body>

        <div>{{ old('a') }}</div>
        <div>{{ old('b') }}</div>
        <div>{{ old('c') }}</div>

    </body>
</html>

動作確認

http://localhost/laravelSample/sample/redirect1

a.png

a、b、cに何か値を入力して送信ボタンクリック

b.png

sample/redirect3にリダイレクトされました

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?