laravel에서 경로 이름 지정의 역할은 리디렉션을 용이하게 하기 위해 경로를 생성하는 것입니다. 경로 이름 지정을 통해 특정 경로가 URL 또는 리디렉션을 쉽게 생성할 수 있습니다. 개발자는 name 메서드를 사용하여 경로에 연결하여 특정 경로의 이름을 정의할 수 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Laravel 6 버전, Dell G3 컴퓨터.
laravel의 경로 이름 지정
laravel 경로 이름 지정의 역할: 리디렉션을 용이하게 하는 경로를 생성합니다.
경로 이름 지정을 통해 특정 경로가 쉽게 URL 또는 리디렉션을 생성할 수 있습니다. name 메소드를 사용하여 경로에 연결하여 주어진 경로의 이름을 정의할 수 있습니다:
Route::get('user/profile', function () { // })->name('profile');
컨트롤러의 메소드에 대한 경로 이름을 지정할 수도 있습니다:
Route::get('user/profile', 'UserProfileController@show')->name('profile');
이름이 지정된 경로를 가리키는 URL 생성
특정 경로에 할당되면 이름이 지정되면 URL을 생성하거나 전역 경로 기능을 통해 리디렉션할 때 경로 이름을 사용할 수 있습니다.
// 生成 URL... $url = route('profile'); // 重定向... return redirect()->route('profile');
명명된 경로가 매개변수를 정의하는 경우 매개변수를 경로에 전달할 수 있습니다. 두 번째 매개변수로 작동합니다. 주어진 매개변수는 URL의 올바른 위치에 자동으로 삽입됩니다:
Route::get('user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 1]);
현재 경로 확인
현재 요청이 지정된 이름의 경로로 라우팅되는지 확인하려면 다음에서 사용할 수 있습니다. 경로 인스턴스 명명된 메서드입니다. 예를 들어 라우팅 미들웨어에서 현재 경로 이름을 확인할 수 있습니다.
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->route()->named('profile')) { // } return $next($request); }
Route name prefix
name 메서드를 사용하면 경로 그룹의 각 경로 이름에 지정된 문자열을 추가할 수 있습니다. 예를 들어 모든 그룹 경로의 이름 앞에 "admin"을 붙일 수 있습니다. 주어진 문자열은 지정된 경로 이름 접두사와 정확히 동일하므로 접두사에 . 문자를 제공해야 합니다.
Route::name('admin.')->group(function () { Route::get('users', function () { // 指定路由名为 "admin.users"... })->name('users'); });
resource 경로 이름 지정
resource 경로
Route::resource('users', 'UsersController');
코드는 동일합니다. In:
Route::get('/users', 'UsersController@index')->name('users.index'); Route::get('/users/{user}', 'UsersController@show')->name('users.show'); Route::get('/users/create', 'UsersController@create')->name('users.create'); Route::post('/users', 'UsersController@store')->name('users.store'); Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit'); Route::patch('/users/{user}', 'UsersController@update')->name('users.update'); Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');
resource 경로 이름 지정
Route::resource('foo', 'ProductsController'); route('foo.index'); // http://your.website/foo Route::resource('products', 'ProductsController', ['names' => 'foo']); route('foo.index'); // http://your.website/products Route::resource('products', 'ProductsController', ['names' => 'admin.products']); route('admin.products.index'); // http://your.website/products
resource 경로 접두사:
Route::resource('products', 'ProductsController', ['as' => 'admin']); route('admin.products.index'); // http://your.website/products
[관련 권장 사항: laravel 비디오 튜토리얼]
위 내용은 laravel의 경로 이름은 어떻게 사용되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!