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) {
    // path 方法的用法
    $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 文件中添加以下行。

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->username

示例

观察以下示例以了解有关 Requests 的更多信息 −

步骤 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) {
    //检索名称输入字段
    $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 文件中添加以下行。

app/Http/routes.php

Route::get('/register',function() {
    return view('register');
});
Route::post('/user/register',array('uses'=>'UserRegistration@postRegister'));

步骤 6 − 访问以下网址,您将看到注册表单,如下图所示。输入注册详细信息并单击"注册",您将在第二页看到我们已检索并显示了用户注册详细信息。

http://localhost:8000/register

步骤 7 −输出将类似于以下图片所示。

Registration