01/10/2018, 15:43

Bài 7: Laravel – Request

Retrieving the Request URI Phương thức “path” được sử dụng để lấy URI. Phương thức “is” được sử dụng để lấy URI đã yêu cầu mà khớp với pattern xách định trong đối số của phương thức. Để lấy ful URL, chúng ta có thể sử dụng phương thức “url”. Example ...

Retrieving the Request URI

Phương thức “path” được sử dụng để lấy URI. Phương thức “is” được sử dụng để lấy URI đã yêu cầu mà khớp với pattern xách định trong đối số của phương thức. Để lấy ful URL, chúng ta có thể sử dụng phương thức “url”.

Example

Step 1: Thực hiện câu lệnh dưới để tạo một controller mới với tên UriController.

php artisan make:controller UriController

Step 2: Sau khi tạo một controller, thêm code sau vào file đó.

app/Http/Controllers/UriController.php

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;

   }

}

Thành phần namespace và use trong file chúng ta giữ nguyên. Chỉ thêm code vào các method trong class như trên.

Lưu ý: trong function index bạn có thấy “Request $request”, vậy cách viết này là gì vậy? Nếu bạn không hiểu có thể xem lại bài Controller, ở mục Constructor Injection.

Step 3: đừng quên thêm định tuyến khi tạo method, controller mới

Route::get(‘/foo/bar’,’UriController@index’);

Step 4: chạy http://localhost:8000/foo/bar

Step 5: và đây là kết quả

bai7_request_uri

Retrieving Input

Giá trị input có thể dể dàng lấy được trong Laravel. Không vấn đề gì phương thức đã sử dụng “get” hoặc “post”, Phương thức Laravel sẽ lấy giá trị input cho cả 2 phương thức trong cùng 1 cách mà thôi. Có 2 cachs chúng ta có thể lấy giá trị Input.

  • Sử dụng phương thức input()
  • Sử dụng thuộc tính của Request

Sử dụng phương thức input()

Phương thức input() có một đối số, tên của field trong form. Lấy ví dụ, nếu form chứa đựng field username thì chúng ta có thể truy cập nó bằng cách:

$name = $request->input(‘username’);

Sử dụng thuộc tính của Request

Giống phương thức input(), chúng ta có thể lấy thuộc tính username trực tiếp từ request

$request->username

Example

Step 1: tạo một form đăng ký, nơi user có thể đăng ký tài khoản ở resource/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: tạo controller UserRegistration

php artisan make:controller UserRegistration

Step 3: copy code sau vào controller vừa tạo

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 4: thêm các dòng code sau vào file định tuyến.

Route::get(‘/register’,function(){

   return view(‘register’);

});

Route::post(‘/user/register’,array(‘uses’=>’UserRegistration@postRegister’));

Step 5: chạy http://localhost:8000/register

Sau khi điền thông tin trong form và click nút register để thấy trang thứ 2 hiễn thị thông tin đăng ký bạn đã đưa vào.

 

0