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();
** 2019 년 11 월 11 일 현재-버전 6.5 **
경로를 얻기 위해 요청을 사용하는 옵션이 있습니다
$request->route()->getName();
api/...
Route::currentRouteName();
perfect :)
$request::route()->getName()
이미 $ request를 사용 중이거나 전역 도우미를 사용할 수 있습니다 request()::route()->getName()
.
request()->route()->getName()
갈 길입니다.
request()
도우미 기능을 사용하면 뷰에서 특히 유용합니다. request()->route()->getName()
최선의 선택입니다.
Laravel 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();
여러 경로에서 메뉴를 선택하려면 다음과 같이하십시오.
<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>
Laravel 5.2 에서도 테스트
이것이 누군가를 돕기를 바랍니다.
Laravel 5.2 사용할 수 있습니다
$request->route()->getName()
현재 경로 이름을 알려줍니다.
name()
그동안 방법을 추가하거나 이름을 변경 할 getName()
방법이 그것을 반환합니다.
5.2에서는 다음과 같이 직접 요청을 사용할 수 있습니다.
$request->route()->getName();
또는 도우미 방법을 통해 :
request()->route()->getName();
출력 예 :
"home.index"
컨트롤러 작업에서 다음을 수행 할 수 있습니다.
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request
Laravel의 서비스 컨테이너로 해결되었습니다.
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/routing#accessing-the-current-route
현재 경로에 액세스 (v5.3 이상)
Route 파사드에서 current, currentRouteName 및 currentRouteAction 메서드를 사용하여 들어오는 요청을 처리하는 경로에 대한 정보에 액세스 할 수 있습니다.
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
접근 가능한 모든 메소드를 검토하려면 Route 파사드의 기본 클래스와 Route 인스턴스에 대한 API 설명서를 참조하십시오.
참조 : https://laravel.com/docs/5.2/routing#accessing-the-current-route
를 보면 \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();
Laravel 버전> 6.0에서 다음 방법을 사용할 수 있습니다.
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
컨트롤러에서 현재 경로 이름에 액세스
즉 -http : // localhost / project_name / edit
$ 요청-> 세그먼트 (1); //편집하다
(또는)
$ 요청-> url (); // http : // localhost / project_name / edit
어떤 이유로 든, 나는 이러한 솔루션을 사용할 수 없었습니다. 난 그냥 내 길을 선언하므로 web.php
으로 $router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
내 컨트롤러에서 나는 사용하여 경로의 이름을 가지고 있다 에 매개 변수를 typehinted 의 방법을$routeName = $request->route()[1]['as'];
$request
\Illuminate\Http\Request $request
index
UserController
루멘 사용 5.6. 누군가에게 도움이되기를 바랍니다.
벨로우즈 코드를 사용하여 블레이드 파일에서 경로 이름을 가져올 수 있습니다.
request()->route()->uri