فهرست:

بازیابی درخواست URI

از متد path برای بازیابی URI درخواستی استفاده می شود. از متد is بررسی صحیح بودن URI درخواستی استفاده می شود که آیا با الگویی که در آرگومان متد مشخص شده مطابقت دارد یا خیر و برای دریافت URL کامل، می توانیم از متد url استفاده کنیم. برای بررسی بهتر مثال زیر را بررس فرماید. ابتدا با خط فرمان زیر کنترلر UriController ایجاد می کنیم.

php artisan make:controller UriController –plain

بعد از ساخت کنترلر فایل app/Http/Controllers/UriController.php بصورت زیر ویرایش نمایید.

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;
   }
}

حال فایل app/Http/route.php بصورت زیر ویرایش کنید.

app/Http/route.php
Route::get('/foo/bar','UriController@index');

حال آدرس زیر را باز کنید

http://localhost:8000/foo/bar

خروجی مرورگر شما باید بصورت زیر باشد.

Path Method: foo/bar
is Method: 1
URL method: http://localhost:8000/foo/bar

بازیابی Input

در لاراول مقادیر ورودی را می توان به راحتی بازیابی کرد. مهم نیست که چه روشی از “GET” یا “POST” استفاده شده است ، لاراول مقادیر ورودی هر دو روش را به همان روش بازیابی می کند. به دو روش می توان مقادیر ورودی را بازیابی کرد.

  • با استفاده از متد input
  • با استفاده از Request instance

استفاده از متد input

متد input نام فیلد مورد نظر را به شکل یک یک آرگومان دریافت می کند مثالا اگر فرم شامل دارای فیلدی به نام username باشد، از طریق زیر می توانیم به آن دسترسی پیدا کنیم.

$name = $request->input('username');

استفاده از Request instance

مانند متد input، می توانیم ویژگی username را مستقیماً از Request instance دریافت کنیم.

$request->username

برای درک بهتر مثال زیر را بررسی کنید، یک فرم ثبت نام ایجاد کنید ، جایی که کاربر بتواند خود را ثبت نام کند برای این منظور فرم زیر را در resources/views/register.php ایجاد کنید.

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>

دستور زیر را برای ایجاد کنترلر UserRegistration اجرا کنید.

php artisan make:controller UserRegistration --plain

بعد از ایجاد کنترلر فایل 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;
   }
}

حال فایل app/Http/routes.php را بصورت زیر تغییر دهید.

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

به URL زیر مراجعه کنید و فرم ثبت نام را پر نموده و بر روی دکمه Register کلیک کنید خروجی مرورگر شما با توجه به فیلد های پر شده در فرم ثبت نام خواهد بود.

http://localhost:8000/register