লারাভেল ভি 4 এ আমি বর্তমান রুটের নামটি ব্যবহার করে সক্ষম হয়েছি ...
Route::currentRouteName()
লারাভেল ভি 5 এবং লারাভেল ভি 6 এ আমি কীভাবে এটি করতে পারি ?
লারাভেল ভি 4 এ আমি বর্তমান রুটের নামটি ব্যবহার করে সক্ষম হয়েছি ...
Route::currentRouteName()
লারাভেল ভি 5 এবং লারাভেল ভি 6 এ আমি কীভাবে এটি করতে পারি ?
উত্তর:
এটা চেষ্টা কর
Route::getCurrentRoute()->getPath();
অথবা
\Request::route()->getName()
v5.1 থেকে
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
লারাভেল ভি 5.2
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
অথবা আপনার ক্রিয়া নাম প্রয়োজন হলে
Route::getCurrentRoute()->getActionName();
অনুরোধ ইউআরআই পুনরুদ্ধার করা হচ্ছে
পাথ পদ্ধতিটি অনুরোধের ইউআরআই প্রদান করে। সুতরাং, যদি আগত অনুরোধটিকে লক্ষ্য করা হয় http://example.com/foo/bar
, তবে পথের পদ্ধতিটি ফিরে আসবে foo/bar
:
$uri = $request->path();
is
পদ্ধতি আপনি যে ইনকামিং অনুরোধ কোনো URI একটি প্রদত্ত প্যাটার্ন সঙ্গে মিলছে তা যাচাই করতে পারবেন। *
এই পদ্ধতিটি ব্যবহার করার সময় আপনি অক্ষরটি ওয়াইল্ডকার্ড হিসাবে ব্যবহার করতে পারেন :
if ($request->is('admin/*')) {
//
}
পুরো URL টি পেতে, কেবলমাত্র পথের তথ্য নয়, আপনি অনুরোধের উদাহরণটিতে ইউআরএল পদ্ধতিটি ব্যবহার করতে পারেন:
$url = $request->url();
লারাভেল ভি 5.3 ... ভি 5.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();
Laravel Laravel জন্য v5.3 আপনি শুধু ব্যবহার করতে পারেন:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
আপনার যদি ইউআরএল প্রয়োজন হয় , রাস্তার নাম নয় , আপনার অন্য কোনও ক্লাস ব্যবহার করার প্রয়োজন নেই:
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 তেও পরীক্ষিত
আশা করি এটি কারও সাহায্য করবে।
লারাভেল 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
আগ্রহের অন্য কোনও কারণে অবজেক্টটি অন্বেষণ করতে পারেন )।
অন্য কথায়, আপনার নামটি "নামআফমাইরউটে" ফেরত দেওয়ার জন্য এইভাবে সংজ্ঞায়িত করা উচিত:
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
লারাভেলে 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/routing#accessing-the-current-route
বর্তমান রুট অ্যাক্সেস করা (v5.3 এর পরে)
আগত অনুরোধটি পরিচালনা করে এমন রুট সম্পর্কিত তথ্য অ্যাক্সেস করার জন্য আপনি রুট ফ্যাসিডে বর্তমান, বর্তমানের রুটনাম এবং বর্তমানরউটএকশন পদ্ধতিগুলি ব্যবহার করতে পারেন:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
সমস্ত অ্যাক্সেসযোগ্য পদ্ধতি পর্যালোচনা করতে রুট ফ্যাসাদ এবং রুট উদাহরণের অন্তর্নিহিত বর্গ উভয়ের জন্য এপিআই ডকুমেন্টেশন দেখুন।
তথ্যসূত্র: https://laravel.com/docs/5.2/routing#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'
) এর সাথে অদ্ভুত আচরণের কারণ হয়েছি experienced এখানে পারফরম্যান্সের বিষয়টিও রয়েছে preg_match()
যা পিএইচপি সম্প্রদায়ের একটি বড় বিষয়।
public function index(Request $request) {
return view(\Route::is('foo', 'bar') ? 'view1' : 'view2');
}
আমার মতে সর্বাধিক সহজ সমাধান হ'ল এই সহায়কটি ব্যবহার করা:
request()->route()->getName()
দস্তাবেজের জন্য, এই লিঙ্কটি দেখুন
আপনি নীচের পদ্ধতিটি ব্যবহার করতে পারেন:
Route::getCurrentRoute()->getPath();
লারাভেল সংস্করণ> 6.0 এ, আপনি নীচের পদ্ধতিগুলি ব্যবহার করতে পারেন:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
নিয়ামকটিতে বর্তমান রুটের নাম অ্যাক্সেস করা হচ্ছে
ie- HTTP: // স্থানীয় হোস্ট / PROJECT_NAME / সম্পাদনা
$ Request-> সেগমেন্ট (1); // সম্পাদন করা
(বা)
$ request-> URL (); // http: // লোকালহোস্ট / প্রকল্প_নাম / সম্পাদনা
একটি সহায়ক ফাইলে,
আপনার Route::current()->uri()
বর্তমান ইউআরএল পেতে ব্যবহার করতে পারেন ।
সুতরাং, আপনি যদি মেনুতে সক্রিয় ক্লাস সেট করতে আপনার রুটের নামটির তুলনা করেন তবে আপনি যদি এটি ব্যবহার করেন তবে ভাল
Route::currentRouteName()
রুটের নাম পেতে এবং তুলনা করতে
কিছু কারণে, আমি এই সমাধানগুলির কোনও ব্যবহার করতে পারিনি। তাই আমি ঠিক আমার রুট ঘোষণা web.php
যেমন $router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
আমার নিয়ামক আমি রুট ব্যবহারের নাম পেয়েছিলাম $routeName = $request->route()[1]['as'];
যা $request
হয় \Illuminate\Http\Request $request
মাপদণ্ড typehinted index
পদ্ধতিUserController
Lumen 5.6 ব্যবহার করে। আশা করি এটি কারও সাহায্য করবে।
সমাধান:
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
আপনি ব্লেড ফাইলে রাস্তার নাম পেতে বেলো কোড ব্যবহার করতে পারেন
request()->route()->uri