Laravel-リクエスト

この章では、Laravelでのリクエストについて詳しく学びます。

リクエストURIの取得

ザ・ “path”メソッドは、要求されたURIを取得するために使用されます。ザ・isメソッドは、メソッドの引数で指定された特定のパターンに一致する要求されたURIを取得するために使用されます。完全なURLを取得するには、url 方法。

Step 1 −以下のコマンドを実行して、という新しいコントローラーを作成します。 UriController

php artisan make:controller UriController –plain

Step 2 − URLが正常に実行されると、次の出力が表示されます−

Step 3 −コントローラーを作成したら、そのファイルに次のコードを追加します。

app/Http/Controllers/UriController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UriController extends Controller {
   
   public function index(Request $request) {
      // Usage of path method
      $path = $request->path();
      echo 'Path Method: '.$path;
      echo '<br>';
     
      // Usage of is method
      $pattern = $request->is('foo/*');
      echo 'is Method: '.$pattern;
      echo '<br>';
      
      // Usage of url method
      $url = $request->url();
      echo 'URL method: '.$url;
   }
}

Step 4 −に次の行を追加します app/Http/route.php ファイル。

app/Http/route.php

Route::get('/foo/bar','UriController@index');

Step 5 −次のURLにアクセスしてください。

http://localhost:8000/foo/bar

Step 6 −次の図に示すように出力が表示されます。

入力の取得

入力値はLaravelで簡単に取得できます。どんな方法を使っても“get” または “post”、Laravelメソッドは、両方のメソッドの入力値を同じ方法で取得します。入力値を取得する方法は2つあります。

  • input()メソッドの使用
  • Requestインスタンスのプロパティを使用する

input()メソッドの使用

ザ・ input()メソッドは1つの引数、フォーム内のフィールドの名前を取ります。たとえば、フォームにユーザー名フィールドが含まれている場合、次の方法でアクセスできます。

$name = $request->input('username');

Requestインスタンスのプロパティを使用する

以下のような input() メソッドでは、リクエストインスタンスから直接usernameプロパティを取得できます。

$request->username

次の例を観察して、リクエストについて詳しく理解してください。

Step 1 −ユーザーが自分で登録し、フォームをに保存できる登録フォームを作成します。 resources/views/register.php

<html>

   <head>
      <title>Form Example</title>
   </head>

   <body>
      <form action = "/user/register" method = "post">
         <input type = "hidden" name = "_token" value = "<?php echo csrf_token() ?>">
      
         <table>
            <tr>
               <td>Name</td>
               <td><input type = "text" name = "name" /></td>
            </tr>
            <tr>
               <td>Username</td>
               <td><input type = "text" name = "username" /></td>
            </tr>
            <tr>
               <td>Password</td>
               <td><input type = "text" name = "password" /></td>
            </tr>
            <tr>
               <td colspan = "2" align = "center">
                  <input type = "submit" value = "Register" />
               </td>
            </tr>
         </table>
      
      </form>
   </body>
</html>

Step 2 −以下のコマンドを実行して、 UserRegistration コントローラ。

php artisan make:controller UserRegistration --plain

Step 3 −上記のステップが正常に実行されると、次の出力が表示されます。

Step 4 −次のコードをコピーします

app/Http/Controllers/UserRegistration.php コントローラ。

app/Http/Controllers/UserRegistration.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserRegistration extends Controller {
   public function postRegister(Request $request) {
      //Retrieve the name input field
      $name = $request->input('name');
      echo 'Name: '.$name;
      echo '<br>';
      
      //Retrieve the username input field
      $username = $request->username;
      echo 'Username: '.$username;
      echo '<br>';
      
      //Retrieve the password input field
      $password = $request->password;
      echo 'Password: '.$password;
   }
}

Step 5 −に次の行を追加します app/Http/routes.php ファイル。

app/Http/routes.php

Route::get('/register',function() {
   return view('register');
});
Route::post('/user/register',array('uses'=>'UserRegistration@postRegister'));

Step 6−次のURLにアクセスすると、下図のような登録フォームが表示されます。登録の詳細を入力して[登録]をクリックすると、2ページ目に、ユーザー登録の詳細を取得して表示したことが表示されます。

http://localhost:8000/register

Step 7 −出力は次の画像のようになります。