Laravel v4'te şu anki rota adını ...
Route::currentRouteName()
Laravel v5 ve Laravel v6'da nasıl yapabilirim ?
Laravel v4'te şu anki rota adını ...
Route::currentRouteName()
Laravel v5 ve Laravel v6'da nasıl yapabilirim ?
Yanıtlar:
Bunu dene
Route::getCurrentRoute()->getPath();
veya
\Request::route()->getName()
v5.1 sürümünden
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel v5.2
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
Veya işlem adına ihtiyacınız varsa
Route::getCurrentRoute()->getActionName();
Laravel 5.2 güzergah dokümantasyonu
İstek URI'sını Alma
Yol yöntemi, isteğin URI'sini döndürür. Dolayısıyla, gelen istek hedeflenirse http://example.com/foo/bar
, path yöntemi döndürülür foo/bar
:
$uri = $request->path();
is
Yöntem Gelen istek URI belirli bir kalıpla eşleştiğini doğrulamak için izin verir. *
Bu yöntemi kullanırken karakteri joker karakter olarak kullanabilirsiniz :
if ($request->is('admin/*')) {
//
}
Yalnızca yol bilgisini değil, tam URL'yi almak için istek örneğinde url yöntemini kullanabilirsiniz:
$url = $request->url();
Laravel v5.3 ... v5.8
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Laravel 5.3 hat dokümantasyonu
Laravel v6.x ... 7.x
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
** 11 Kasım 2019 itibarıyla mevcut - sürüm 6.5 **
Laravel 6.x güzergah dokümantasyonu
Rota almak için istek kullanma seçeneği vardır
$request->route()->getName();
api/...
Route::currentRouteName();
mükemmel :)
$request::route()->getName()
zaten $ isteğini kullanıyorsanız veya genel yardımcıyı kullanabilirsiniz request()::route()->getName()
.
request()->route()->getName()
gitmek için bir yoldur.
request()
yardımcı fonksiyon görünümlerinde özellikle yararlıdır. request()->route()->getName()
en iyi seçenektir.
Laravel 5.1 kullanarak şunları kullanabilirsiniz:
\Request::route()->getName()
{{ route(\Request::route()->getName()) }}
. Çok teşekkürler!
Laravel v5 , v5.1.28 ve v5.2.10 için geçerli rota adı işlerini bulmanın bir yolunu buldu
Ad alanı
use Illuminate\Support\Facades\Route;
ve
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel laravel v5.3 için şunları kullanabilirsiniz:
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
Rota adına değil URL'ye ihtiyacınız varsa , başka sınıflar kullanmanız / zorunlu tutmanız gerekmez:
url()->current();
Birden fazla rotadaki menüyü seçmek isterseniz, bunu yapabilirsiniz:
<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>
Veya yalnızca tek bir menü seçmek isterseniz, bunu yapabilirsiniz:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
Ayrıca test edildi Laravel 5.2'de
Umarım bu birine yardım eder.
Laravel 5.2 Kullanabilirsiniz
$request->route()->getName()
Size geçerli güzergah adını verecektir.
name()
ederken yöntem eklemek veya adı değişecek getName()
yöntem döndürür.
5.2'de, isteği doğrudan aşağıdakilerle kullanabilirsiniz:
$request->route()->getName();
veya yardımcı yöntemle:
request()->route()->getName();
Çıktı örneği:
"home.index"
En kısa yol Güzergah cephesidir
\Route::current()->getName()
Bu laravel 5.4'te de çalışır. *
Bir denetleyici eyleminde şunları yapabilirsiniz:
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request
burada Laravel'in servis konteyneri tarafından çözülüyor.
getName()
yalnızca adlandırılmış rotalar için rota adını döndürür , null
aksi takdirde (yine de\Illuminate\Routing\Route
nesneyi de ilgi çekici başka bir şey için ).
Başka bir deyişle, "nameOfMyRoute" ifadesinin döndürülmesi için rotanızın şu şekilde tanımlanması gerekir:
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
Şimdi Laravel'de 5.3
denediğiniz gibi yapılabileceğini görüyorum:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/routing#accessing-the-current-route
Geçerli Rotaya Erişme
Blade şablonlarında geçerli rota adını alma
{{ Route::currentRouteName() }}
daha fazla bilgi için https://laravel.com/docs/5.5/routing#accessing-the-current-route
Geçerli Rotaya Erişme (v5.3 sonrası)
Gelen isteği işleyen yol hakkındaki bilgilere erişmek için Güzergah cephesindeki current, currentRouteName ve currentRouteAction yöntemlerini kullanabilirsiniz:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Erişilebilir tüm yöntemleri gözden geçirmek için hem Rota cephesinin hem de Rota örneğinin temel sınıfı için API belgelerine bakın.
Referans: https://laravel.com/docs/5.2/routing#accessing-the-current-route
$request->route()->getName();
Larvel 5.3'te rota adı almak için kullandım
Request::path()
Baktığımızda \Illuminate\Routing\Router.php
sizin yöntemi kullanabilirsiniz currentRouteNamed()
Denetleyiciniz yönteminde bir yönlendirici enjekte ederek. Örneğin:
use Illuminate\Routing\Router;
public function index(Request $request, Router $router) {
return view($router->currentRouteNamed('foo') ? 'view1' : 'view2');
}
veya Güzergah cephesini kullanarak:
public function index(Request $request) {
return view(\Route::currentRouteNamed('foo') ? 'view1' : 'view2');
}
is()
Rotanın verilen parametrelerden herhangi birinin adlandırılıp adlandırılmadığını kontrol etmek için yöntemi de kullanabilirsiniz , ancak bu yöntemin kullandığına dikkat edin preg_match()
ve noktalı rota adları (gibi 'foo.bar.done'
) ile garip davranışlara neden olduğunu deneyimledim . preg_match()
PHP topluluğunda büyük bir konu olan bir performans meselesi de var .
public function index(Request $request) {
return view(\Route::is('foo', 'bar') ? 'view1' : 'view2');
}
Bence en kolay çözüm bu yardımcıyı kullanmaktır:
request()->route()->getName()
Dokümanlar için bu bağlantıya bakın
Aşağıdaki yöntemi kullanabilirsiniz:
Route::getCurrentRoute()->getPath();
Laravel sürüm> 6.0'da aşağıdaki yöntemleri kullanabilirsiniz:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Denetleyicide Geçerli Rota Adına Erişim
ie- http: // localhost / proje_adı / düzenle
$ Request-> kademeli bir (1); //Düzenle
(veya)
$ request-> url (); // http: // localhost / proje_adı / düzenle
Bir Yardımcı dosyasında,
Route::current()->uri()
Mevcut URL'yi almak için kullanabilirsiniz .
Bu nedenle, menüde aktif sınıf ayarlamak için rota adınızı karşılaştırırsanız,
Route::currentRouteName()
Güzergahın adını almak ve karşılaştırmak için
bazı nedenlerden dolayı bu çözümlerden hiçbirini kullanamadım. bu yüzden sadece rotamı web.php
olarak ilan ettim $router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
ve kontrol cihazımda , typehinted parametresi $routeName = $request->route()[1]['as'];
olan rotanın adını aldım$request
\Illuminate\Http\Request $request
index
yöntemiUserController
Lumen kullanarak 5.6. Umarım birine yardım eder.
Çözüm :
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
Blade dosyasında rota adı almak için feryat kodu kullanabilirsiniz
request()->route()->uri