Laravel v4 में मैं वर्तमान रूट नाम का उपयोग करने में सक्षम था ...
Route::currentRouteName()
मैं इसे Laravel v5 और Laravel v6 में कैसे कर सकता हूं ?
Laravel v4 में मैं वर्तमान रूट नाम का उपयोग करने में सक्षम था ...
Route::currentRouteName()
मैं इसे Laravel v5 और Laravel v6 में कैसे कर सकता हूं ?
जवाबों:
इसे इस्तेमाल करे
Route::getCurrentRoute()->getPath();
या
\Request::route()->getName()
v5.1 से
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
लारवेल v5.2
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
या यदि आपको कार्रवाई नाम की आवश्यकता है
Route::getCurrentRoute()->getActionName();
अनुरोध URI को पुनः प्राप्त करना
पथ विधि अनुरोध का URI लौटाती है। इसलिए, यदि आने वाले अनुरोध को लक्षित किया जाता है http://example.com/foo/bar
, तो पथ विधि वापस आ जाएगी foo/bar
:
$uri = $request->path();
is
विधि आपको लगता है कि आने वाली अनुरोध URI किसी दिए गए पैटर्न से मेल खाता सत्यापित करने के लिए अनुमति देता है। *
इस पद्धति का उपयोग करते समय आप वर्ण को वाइल्डकार्ड के रूप में उपयोग कर सकते हैं :
if ($request->is('admin/*')) {
//
}
पूर्ण URL प्राप्त करने के लिए, केवल पथ जानकारी नहीं, आप अनुरोध उदाहरण पर url विधि का उपयोग कर सकते हैं:
$url = $request->url();
लारवेल v5.3 ... v5.8
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
लारवेल v6.x ... 7.x
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
** 11 नवंबर 2019 तक वर्तमान - संस्करण 6.5 **
मार्ग प्राप्त करने के लिए अनुरोध का उपयोग करने का एक विकल्प है
$request->route()->getName();
api/...
Route::currentRouteName();
परफेक्ट :)
$request::route()->getName()
यदि आप पहले से ही $ अनुरोध का उपयोग कर रहे हैं, या आप वैश्विक सहायक का उपयोग कर सकते हैं request()::route()->getName()
।
request()->route()->getName()
जाने का रास्ता है।
request()
सहायक फ़ंक्शन का उपयोग करना विचारों में विशेष रूप से उपयोगी है। request()->route()->getName()
सबसे अच्छा विकल्प है।
लारवेल 5.1 का उपयोग करके, आप उपयोग कर सकते हैं
\Request::route()->getName()
{{ route(\Request::route()->getName()) }}
। बहुत बहुत धन्यवाद!
Laravel के लिए वर्तमान मार्ग नाम काम करता है खोजने के लिए एक रास्ता मिल गया v5 , v5.1.28 और v5.2.10
नाम स्थान
use Illuminate\Support\Facades\Route;
तथा
$currentPath= Route::getFacadeRoot()->current()->uri();
लारवेल लार्वा v5.3 के लिए आप बस उपयोग कर सकते हैं:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
यदि आपको url की आवश्यकता है , मार्ग का नाम नहीं है , तो आपको किसी अन्य वर्ग का उपयोग करने / उसकी आवश्यकता नहीं है:
url()->current();
यदि आप कई मार्गों पर मेनू का चयन करना चाहते हैं, तो आप ऐसा कर सकते हैं:
<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i> Products</a></li>
या यदि आप केवल एकल मेनू का चयन करना चाहते हैं, तो आप बस इस तरह कर सकते हैं:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
लारावेल 5.2 में भी परीक्षण किया गया
आशा है कि यह किसी की मदद करेंगे।
Laravel 5.2 आप उपयोग कर सकते हैं
$request->route()->getName()
यह आपको वर्तमान मार्ग का नाम देगा।
name()
विधि जोड़ें या नाम बदल जाएगा, जबकि getName()
विधि वापस करती है।
5.2 में, आप सीधे अनुरोध का उपयोग कर सकते हैं:
$request->route()->getName();
या सहायक विधि के माध्यम से:
request()->route()->getName();
आउटपुट उदाहरण:
"home.index"
सबसे छोटा रास्ता मार्ग मुखौटा है
\Route::current()->getName()
यह लार्वा 5.4 में भी काम करता है। *
नियंत्रक क्रिया में, आप बस कर सकते हैं:
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request
यहाँ लारवेल के सेवा कंटेनर द्वारा हल किया गया है।
getName()
केवल नामित मार्गों के लिए मार्ग का नाम लौटाता है , null
अन्यथा (लेकिन आप फिर भी \Illuminate\Routing\Route
किसी अन्य चीज के लिए वस्तु का पता लगा सकते हैं)।
दूसरे शब्दों में, आपको अपना मार्ग इस तरह परिभाषित करना चाहिए कि "nameOfMyRoute" वापस आए:
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
अब Laravel में 5.3
मैं देख रहा हूँ कि इसी तरह से आप कोशिश कर सकते हैं:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/routing#accessing-the-current-route
वर्तमान मार्ग पर पहुँचना
ब्लेड टेम्पलेट्स में वर्तमान मार्ग का नाम प्राप्त करें
{{ Route::currentRouteName() }}
अधिक जानकारी के लिए https://laravel.com/docs/5.5/rout#accessing-the-current-route
वर्तमान मार्ग तक पहुँचने (v5.3 आगे)
आने वाले अनुरोध को संभालने वाले मार्ग के बारे में जानकारी प्राप्त करने के लिए आप रूट मुखौटा पर वर्तमान, currentRouteName और currentRouteAction तरीकों का उपयोग कर सकते हैं:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
सभी सुलभ विधियों की समीक्षा करने के लिए रूट मुखौटा और रूट उदाहरण के दोनों अंतर्निहित वर्ग के लिए एपीआई प्रलेखन देखें।
संदर्भ: https://laravel.com/docs/5.2/rout#accessing-the-current-route
$request->route()->getName();
मैंने लार्वा 5.3 में मार्ग का नाम प्राप्त करने के लिए उपयोग किया है
Request::path()
को देखते हुए \Illuminate\Routing\Router.php
आप विधि का उपयोग कर सकते हैं currentRouteNamed()
अपने नियंत्रक विधि में एक रूटर इंजेक्शन लगाने के द्वारा। उदाहरण के लिए:
use Illuminate\Routing\Router;
public function index(Request $request, Router $router) {
return view($router->currentRouteNamed('foo') ? 'view1' : 'view2');
}
या मार्ग मुखौटा का उपयोग कर:
public function index(Request $request) {
return view(\Route::currentRouteNamed('foo') ? 'view1' : 'view2');
}
आप यह is()
जांचने के लिए भी विधि का उपयोग कर सकते हैं कि क्या मार्ग दिए गए मापदंडों में से किसी का नाम है, लेकिन इस विधि का उपयोग करें preg_match()
और मैंने यह अनुभव किया है कि बिंदीदार मार्ग नामों (जैसे 'foo.bar.done'
) के साथ अजीब व्यवहार का कारण बन सकता है । प्रदर्शन का मामला भी है preg_match()
जो PHP समुदाय में एक बड़ा विषय है।
public function index(Request $request) {
return view(\Route::is('foo', 'bar') ? 'view1' : 'view2');
}
आप नीचे विधि का उपयोग कर सकते हैं:
Route::getCurrentRoute()->getPath();
लारवेल संस्करण> 6.0 में, आप नीचे दिए गए तरीकों का उपयोग कर सकते हैं:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
नियंत्रक में वर्तमान मार्ग का नाम
अर्थात् http: // localhost / PROJECT_NAME / संपादित
$ अनुरोध> खंड (1); // संपादित करें
(या)
$ अनुरोध> यूआरएल (); // http: // localhost / project_name / संपादित करें
एक हेल्पर फ़ाइल में,
Route::current()->uri()
आप वर्तमान URL प्राप्त करने के लिए उपयोग कर सकते हैं ।
इसलिए, यदि आप मेनू पर सक्रिय वर्ग सेट करने के लिए अपने रूट नाम की तुलना करते हैं तो यह अच्छा होगा यदि आप उपयोग करते हैं
Route::currentRouteName()
मार्ग का नाम पाने के लिए और तुलना करें
कुछ कारणों से, मैं इनमें से किसी भी समाधान का उपयोग नहीं कर सका। इसलिए मैंने अभी अपना रूट घोषित web.php
किया है $router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
और अपने कंट्रोलर में मुझे उस रूट का नाम मिला है $routeName = $request->route()[1]['as'];
जिसके इस्तेमाल $request
से \Illuminate\Http\Request $request
टाइप किया गया index
हैUserController
लुमेन 5.6 का उपयोग करना। आशा है कि यह किसी की मदद करेगा।
आप ब्लेड फ़ाइल में रूट का नाम पाने के लिए bellow कोड का उपयोग कर सकते हैं
request()->route()->uri