Laravel - 请求

  • 简述

    在本章中,您将详细了解 Laravel 中的请求。
  • 检索请求 URI

    “path”方法用于检索请求的 URI。这is方法用于检索与方法参数中指定的特定模式匹配的请求的 URI。要获取完整的 URL,我们可以使用url方法。

    例子

    步骤 1− 执行以下命令创建一个名为的新控制器UriController.
    
    php artisan make:controller UriController –plain
    
    步骤 2− 成功执行 URL 后,您将收到以下输出 −
    Uri控制器
    步骤 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 方法将以相同的方式检索这两个方法的输入值。我们可以通过两种方式检索输入值。
    • 使用 input() 方法
    • 使用Request实例的属性

    使用 input() 方法

    input()方法采用一个参数,即表单中字段的名称。例如,如果表单包含用户名字段,那么我们可以通过以下方式访问它。
    
    $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− 访问以下网址,您将看到如下图所示的注册表。输入注册详细信息并单击注册,您将在第二页上看到我们已检索并显示用户注册详细信息。
    
    http://localhost:8000/register
    
    步骤 7- 输出将如下图所示。
    登记