درس 9 - Request ها در لاراول

در این آموزش از سری درس های آموزش فریمورک لاراول ، به بحث request ها یا درخواست در فریمورک لاراول خواهیم پرداخت.

 

آموزش بازیابی URL درخواست ها در فریمورک لاراول

در فریمورک لاراول متودی به نام path وجود دارد که url مربوط به درخواست ها را بازیابی میکند. یک متود دیگری به نام is وجود دارد که url را مطابق با الگوی تعریف شده به همراه آرگومان ها برمیگرداند.

اگر قصد دارید url را بصورت کامل بازیافت کنید میتوانید از متودی به نام url استفاده کنید.

مثال

قدم 1 - دستورات زیر را اجرا کنید تا یک کنترلر به نام UriController ساخته شود.

php artisan make:controller UriController –plain

 

قدم 2 - بعد از اجرای دستور بالا در ترمینال یا کامند پرومپ نتیجه باید مشابه تصویر زیر باشد.

 

آموزش بازیابی URL درخواست های فریمورک لاراول
 

قدم 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 - کدهای زیر را به مسیر route های خود اضافه کنید.

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

 

قدم 5 - از طریق مرورگر url زیر را بازدید کنید.

http://localhost:8000/foo/bar

 

قدم 6 - نتیجه باید مشابه تصویر زیر باشد.

آموزش فریمورک لاراول بصورت کامل
 

بازیابی Input در فریمورک لاراول

مقدار input به راحتی در فریمورک لاراول قابل بازیابی است مهم نیست کدام یک از متود های get یا post استفاده شده باشد. فریمورک لاراول هر دو متود را به یک شیوه بازیابی خواهد کرد.

در فریمورک لاراول دو راه وجود دارد که مقدار input را بدست بیاوریم:

  • استفاده از متود input
  • استفاده از نمونه ی Request

 

استفاده از متود input برای بازیابی مقدار input در لاراول

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

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

 

استفاده از instance مربوط به Request جهت دریافت input ها در لاراول

همانند متود input ما میتوانیم مقدار username را بصورت مستقیم از instance مربوط به request دریافت کنیم.

$request->username

مثال زیر را برای درک بیشتر Request ها در لاراول در نظر داشته باشید.

قدم 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 - بعد از اجرای موفقیت آمیز کدهای بالا در ترمینال باید نتیجه مشابه تصویر زیر باشد.

آموزش request ها در فریمورک لاراول

قدم 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) {
      //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 - کدهای زیر را به مسیر route های خود اضافه کنید. 

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

قدم 6 - به آدرس url زیر توسط مرورگر خود مراجعه کنید و نتیجه که یک فرم ثبت نامی لاراول هست را مشاهده کنید.

بعد از مشاهده فرم و در صورت پرکردن و ارسال فرم در صفحه ی بعدی شما اطلاعات فرم را مشاهده خواهید کرد.

http://localhost:8000/register

قدم 7 - نتیجه باید به شکل تصویر زیر باشد.

آموزش فریمورک لاراول آموزش کار با request ها در لاراول

اتمام درس