If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Laravel में current HTTP Request get करने के लिए , Illuminate\Http\Request को Controller method के साथ 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 करते हैं।
जैसा की आपने ऊपर पढ़ा कि 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
<?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 करने के लिए करते हैं।
instance हमें कई सारे useful methods provide करती है जिसके through हम हर तरह की information get कर सकते हैं।
$uri = $request->path(); /** * it will return path excluding domain name. * For http://domain.com/foo/bar * O/P : foo/bar */
is() method के through हम check कर सकते हैं कि , incoming request दिए गए URL Pattern को match करती है या नहीं।
For Eg.
if ($request->is('admin/*')) { //your logic }
// Without Query String... $url = $request->url(); // With Query String... $url = $request->fullUrl();
current request का type get करने के लिए isMethod() का use करते हैं।
$method = $request->method(); if ($request->isMethod('post')) { //your logic }
current request से send किया data get करने के लिए Request Class के कई सारे useful methods का use कर सकते हैं।
<?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');
?>
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 करने के लिए किया जाता है।
<?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');
?>
<?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');
?>
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'])) { // }