Laravel 请求
在本章中,你将详细了解 Laravel 中的请求。
获取请求 URI
path()方法用于获取请求的URI,is()方法用于获取与方法参数中指定的特定模式匹配的请求 URI,url()方法可以获得完整的URL。
步骤1: 执行以下命令创建一个名为UriController的控制器:
php artisan make:controller UriController –plain
步骤2: 成功执行该命令后,你将得到以下输出:
步骤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) { // 路径方法的使用 $path = $request->path(); echo 'Path Method: '.$path; echo '<br>'; // is方法的使用 $pattern = $request->is('foo/*'); echo 'is Method: '.$pattern; echo '<br>'; // url方法的使用 $url = $request->url(); echo 'URL method: '.$url; } }
步骤4: 在app/Http/route.php文件中添加以下代码:
Route::get('/foo/bar','UriController@index');
步骤5: 访问以下网址:
http://localhost:8000/foo/bar
步骤6: 输出将如下图所示:
获取输入
在Laravel中可以很轻松地获取输入值,无论是"get"或者"post"请求,Laravel方法都会以同样的方式获取输入值。我们有以下两种方法可以获取输入值:
使用 input() 方法
使用 Request 实例的属性
使用 input() 方法
input()方法接受一个参数,即表单中字段的名称。例如,如果表单包含用户名字段,那么我们可以通过以下方式访问它:
$name = $request->input('username');
使用 Request 实例的属性
与input()方法类似,我们可以直接从request实例中获取用户名属性:
$request->username
观察以下示例以了解有关请求的更多信息:
步骤1: 创建一个注册表单用于用户注册,并将表单代码保存在resources/views/register.php。
<html> <head> <title>Form 例子</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控制器文件中。
<?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) { // 获取名称输入字段 $name = $request->input('name'); echo 'Name: '.$name; echo '<br>'; // 获取用户名输入字段 $username = $request->username; echo 'Username: '.$username; echo '<br>'; // 获取密码输入字段 $password = $request->password; echo 'Password: '.$password; } }
步骤5: 在app/Http/routes.php文件中添加以下代码:
Route::get('/register',function() { return view('register'); }); Route::post('/user/register',array('uses'=>'UserRegistration@postRegister'));
步骤6: 访问以下网址,你将看到如下图所示的注册表单,键入注册信息并单击'Register',你将在第二页上看到我们已获取并显示用户注册信息。
http://localhost:8000/register
步骤7: 输出将如下图所示。