Laravel-request

提供:Dev Guides
移動先:案内検索

Laravel-リクエスト

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

リクエストURIを取得する

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

ステップ1 *-以下のコマンドを実行して、 *UriController という新しいコントローラーを作成します。

php artisan make:controller UriController –plain
  • ステップ2 *-URLが正常に実行されると、次の出力が表示されます-

UriController

  • ステップ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;
   }
}

ステップ4 *- *app/Http/route.php ファイルに次の行を追加します。

*app/Http/route.php*
Route::get('/foo/bar','UriController@index');
  • ステップ5 *-次のURLにアクセスします。
http://localhost:8000/foo/bar
  • ステップ6 *-出力は次の画像のように表示されます。

パスメソッド

入力の取得

入力値はLaravelで簡単に取得できます。 「get」*または「post」*のどのメソッドが使用されても、Laravelメソッドは両方のメソッドの入力値を同じ方法で取得します。 入力値を取得するには2つの方法があります。

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

input()メソッドを使用する

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

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

  • input()*メソッドと同様に、リクエストインスタンスからユーザー名プロパティを直接取得できます。
$request->username

リクエストの詳細を理解するには、次の例をご覧ください-

ステップ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>

ステップ2 *-以下のコマンドを実行して、 *UserRegistration コントローラーを作成します。

php artisan make:controller UserRegistration --plain
  • ステップ3 *-上記のステップが正常に実行されると、次の出力が表示されます-

UserRegistration

  • ステップ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;
   }
}

ステップ5 *- *app/Http/routes.php ファイルに次の行を追加します。

*app/Http/routes.php*
Route::get('/register',function() {
   return view('register');
});
Route::post('/user/register',array('uses'=>'UserRegistration@postRegister'));
  • ステップ6 *-次のURLにアクセスすると、次の図に示す登録フォームが表示されます。 登録の詳細を入力して[登録]をクリックすると、2番目のページにユーザー登録の詳細を取得して表示したことが表示されます。
http://localhost:8000/register
  • ステップ7 *-出力は、以下の画像の下に示すようになります。

登録