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 −出力は次の画像のようになります。