Laravel 请求


在本章中,你将详细了解 Laravel 中的请求。

获取请求 URI


path()方法用于获取请求的URI,is()方法用于获取与方法参数中指定的特定模式匹配的请求 URI,url()方法可以获得完整的URL。

步骤1: 执行以下命令创建一个名为UriController的控制器:

php artisan make:controller UriController –plain

步骤2: 成功执行该命令后,你将得到以下输出:

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) {
        // 路径方法的使用
        $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: 输出将如下图所示:

Path Method

获取输入


在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: 成功执行上述步骤后,你将得到以下输出:

UserRegistration

步骤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: 输出将如下图所示。

Registration