مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

درخواست های Http در فریمورک Yii


Requestهایی که توسط شیء yii\web\Request ارائه داده می شوند اطلاعاتی در مورد headerهای HTTP، پارامترهای request، کوکی ها و غیره ارائه می دهند.

متدهای get() و post() پارامترهای request  را از کامپوننت request  بازمی گردانند.

مثال -

$req = Yii::$app->request;
   /*
   * $get = $_GET;
   */
   $get = $req->get();

 
   /*
   * if(isset($_GET['id'])) {
   *     $id = $_GET['id'];
   * } else {
   *     $id = null;
   * }
   */
   $id = $req->get('id');
            
   /*
   * if(isset($_GET['id'])) {
   *     $id = $_GET['id'];
   * } else {
   *     $id = 1;
   * }
   */
   $id = $req->get('id', 1);
            
   /*
   * $post = $_POST;
            */
   $post = $req->post();

 
   /*
   * if(isset($_POST['name'])) {       
   *     $name = $_POST['name'];          
   * } else {
   *     $name = null;
   * }
   */
   $name = $req->post('name');
                          
   /*
   * if(isset($_POST['name'])) {
   *     $name = $_POST['name'];
   * } else {
   *     $name = '';
   * }
   */
   $name = $req->post('name', '');

مرحله 1 - تابعی به نام actionTestGet را به SiteController در قالب پایه برنامه اضافه کنید.

        public function actionTestGet() {
   var_dump(Yii::$app->request->get());
}

مرحله 2 - حالا به آدرس   http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcomeبروید، آنچه که مشاهده خواهید کرد مطابق با تصویر زیر می باشد.

برای بازیابی پارامترهای متد های درخواست دیگر (PATCH، DELETE، و غیره) از متد yii\web\Request::getBodyParam() استفاده کنید.

برای دریافت (get) متد HTTP درخواست جاری، از property یا ویژگی Yii::$apprequestmethod استفاده کنید.

 

مرحله 3 - تابع actionTestGet را همانطور که در کد زیر نشان داده شده تغییر دهید.

public function actionTestGet() {
   $req = Yii::$app->request;
   if ($req->isAjax) {
      echo "the request is AJAX";
   }
   if ($req->isGet) {
      echo "the request is GET";
   }
   if ($req->isPost) {
      echo "the request is POST";
   }
   if ($req->isPut) {
      echo "the request is PUT";
   }
}

مرحله 4 – به آدرس http://localhost:8080/index.php?r=site/test-get بروید. آنچه که مشاهده خواهید کرد مطابق با تصویر زیر می باشد.

کامپوننت Request خصوصیات یا propertyهای زیادی را برای بررسی آدرس های درخواست شده فراهم می کند.

مرحله 5 -  تابع actionTestGet را به صورت زیر تغییر دهید.

public function actionTestGet() {
   //the URL without the host
   var_dump(Yii::$app->request->url);
   
   //the whole URL including the host path
   var_dump(Yii::$app->request->absoluteUrl);
   
   //the host of the URL
   var_dump(Yii::$app->request->hostInfo);
   
   //the part after the entry script and before the question mark
   var_dump(Yii::$app->request->pathInfo);
   
   //the part after the question mark
   var_dump(Yii::$app->request->queryString);
   
   //the part after the host and before the entry script
   var_dump(Yii::$app->request->baseUrl);
   
   //the URL without path info and query string
   var_dump(Yii::$app->request->scriptUrl);
   
   //the host name in the URL
   var_dump(Yii::$app->request->serverName);
   
   //the port used by the web server
   var_dump(Yii::$app->request->serverPort);
}

مرحله 6 - در نوار آدرس مرورگر وبتان http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome را تایپ کنید، آنچه که مشاهده می کنید مطابق با تصویر زیر می باشد.

مرحله 7 - برای دریافت اطلاعات هدر HTTP، شما می توانید از ویژگی yii\web\Request::$headers استفاده کنید. تابع actionTestGet را مطابق کد زیر ویرایش کنید.

public function actionTestGet() { 
   var_dump(Yii::$app->request->headers); 
}

مرحله 8 - اگر شما به آدرس http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome ، بروید خروجی که مشاهده خواهید کرد مطابق با تصویر زیر می باشد.

برای دریافت نام هاست و IP آدرس دستگاه مشتری، از پروپرتی های userHost  و userIP استفاده کنید.

مرحله 9 - تابعactionTestGet  را به شکل زیر ویرایش کنید.

public function actionTestGet() {
   var_dump(Yii::$app->request->userHost);
   var_dump(Yii::$app->request->userIP);
}

مرحله 10 - به آدرس http://localhost:8080/index.php?r=site/test-get بروید. انچه که مشاهده می کنید مطابق با تصویر زیر است.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

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

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید