Laravel-request
提供:Dev Guides
Laravel-リクエスト
この章では、Laravelのリクエストについて詳しく学習します。
リクエストURIを取得する
*"path"* メソッドは、要求されたURIを取得するために使用されます。 *is* メソッドは、メソッドの引数で指定された特定のパターンに一致する要求されたURIを取得するために使用されます。 完全なURLを取得するには、 *url* メソッドを使用できます。
例
ステップ1 *-以下のコマンドを実行して、 *UriController という新しいコントローラーを作成します。
php artisan make:controller UriController –plain
- ステップ2 *-URLが正常に実行されると、次の出力が表示されます-
- ステップ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 *-上記のステップが正常に実行されると、次の出力が表示されます-
- ステップ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 *-出力は、以下の画像の下に示すようになります。