Laravel में current HTTP Request get करने के लिए , Illuminate\Http\Request को Controller method के साथ Type Hint करना पड़ता है।

Understanding Type Hint

Type Hint का मतलब कि, function को यह hint provide करना कि वह function define किये गए type का ही data accept करेगा। या हम कह सकते हैं , Type Hint एक ऐसा method / way है जिसके through हम किसी function / method को किसी type का data accept करने के लिए force करते हैं।


PHP में Type Hint का use किसी Object , array या Boolean के लिए कर सकते हैं। इसमें simply function define करते समय parameters का type भी define कर देते हैं। और function call करते समय उसी type की value pass कर देते हैं।


अभी तक आपने किसी request (Get / Post / Delete etc...) को Controller method में handle किया , इस Topic में आप सीखेंगे कि कैसे Request Object का use करके Http request से data extract करते हैं।

Laravel Accessing Request

जैसा की आपने ऊपर पढ़ा कि Http Request Access करने के लिए हम Illuminate\Http\Request Object का use करते हैं।
For Eg. define किये गए routes के लिए हम कुछ इस तरह से Request access करेंगे।

Route::get('/hello', 'HomeController@index');

File : app/Http/Controllers/HomeController.php

Copy Fullscreen Close Fullscreen
<?php 
  namespace App\Http\Controllers; 
 use Illuminate\Http\Request; 
 class HomeController extends Controller
 {
      /**
      * Update the specified user.
      *
      * @param  Request  $request : contains all info about current request
      */
     public function index(Request $request)
     {
         /*do whatever you want*/
     }
 }
?>

कुछ इस तरह से Type Hinting का use Current Http Request को access करने के लिए करते हैं।

Laravel Request Path & Method

instance हमें कई सारे useful methods provide करती है जिसके through हम हर तरह की information get कर सकते हैं।

Retrieving The Request Path
$uri = $request->path();

/**
* it will return path excluding domain name.
* For http://domain.com/foo/bar
* O/P : foo/bar
*/

Laravel is() Method

is() method के through हम check कर सकते हैं कि , incoming request दिए गए URL Pattern को match करती है या नहीं।
For Eg.

if ($request->is('admin/*')) {
    //your logic
}

Laravel Retrieving The Request URL
// Without Query String...
$url = $request->url();

// With Query String...
$url = $request->fullUrl();

Laravel Retrieving The Request Method

current request का type get करने के लिए isMethod() का use करते हैं।

$method = $request->method();

if ($request->isMethod('post')) {
    //your logic
}

Laravel Retrieving Input

current request से send किया data get करने के लिए Request Class के कई सारे useful methods का use कर सकते हैं।

Copy Fullscreen Close Fullscreen
<?php 
 /*all() returns all input data as an Array*/
 $all_input = $request->all();

 /*for single input value : */
 $name = $request->input('name');
 /*or you can direct use as a property*/
 $name = $request->name;

 /*you can set default value for a input*/
 $name = $request->input('name', 'Rahul');
?>

Laravel Retrieving Input From The Query String

input() method , complete request payload से data get करने के लिए use किया जाता है , वही query() method का use सिर्फ query string (For Eg. https://www.learnhindituts.com?key1=value1&key2=value2) से data get करने के लिए किया जाता है।

Copy Fullscreen Close Fullscreen
<?php 
 /*all() returns all query data as an Array*/
 $all_input = $request->query();

 /*for single input value : */
 $name = $request->query('name');

 /*you can set default value for a input*/
 $name = $request->query('name', 'Rahul');
?>

Laravel Retrieving A Portion Of The Input Data

Copy Fullscreen Close Fullscreen
<?php 
/*returns all data for given key in an array*/
$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');

/*returns all data except given key in an array*/
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
?>

Determining If An Input Value Is Present

has() method का use check करने के लिए किया जाता है कि कोई value input में present है या नहीं।

/*check a single value*/
if ($request->has('name')) {
    //
}

/*अगर सभी values input में हों।*/
if ($request->has(['name', 'email'])) {
    //
}

/*अगर कोई एक value input में present हो*/
if ($request->hasAny(['name', 'email'])) {
    //
}

Related Topics :

Rahul Kumar

Rahul Kumar

Hi ! I'm Rahul Kumar Rajput founder of learnhindituts.com. I'm a software developer having more than 4 years of experience. I love to talk about programming as well as writing technical tutorials and blogs that can help to others. I'm here to help you navigate the coding cosmos and turn your ideas into reality, keep coding, keep learning :)

Get connected with me. :) LinkedIn Twitter Instagram Facebook

b2eprogrammers