Laravel 라우팅 요약

12856 단어 Laravel
Laravel 5.8, 다른 버전도 문제없습니다.

폴더 보기



라우팅 선택


이것을 먼저 정리하지 않고 길을 걷는다면 보통 이렇게 되겠죠.
또 노선명(->nameの部分)에 대해view와 결합했기 때문에 이번에도 이렇게 기술했다.
web.php
Route::get('/main/list','MainController@list')->name('main.list');
Route::get('/main/edit','MainController@edit')->name('main.edit');
Route::get('/main/search','MainController@search')->name('main.search');
/main 부분은 공통적이기 때문에 Route::prefix로 정리할 수 있다.
prefix 방법은 그룹의 각 루트에 지정된 URI 접두사를 지정하는 데 사용됩니다.
web.php
Route::prefix('main')->group(function () {
    Route::get('list','MainController@list')->name('main.list');
    Route::get('edit','MainController@edit')->name('main.edit');
    Route::get('search','MainController@search')->name('main.search');
});

그 외에 노선명으로 요약하면 다음과 같다
web.php
Route::name('main.')->group(function () {
    Route::get('/main/list','MainController@list')->name('list');
    Route::get('/main/edit','MainController@edit')->name('edit');
    Route::get('/main/search','MainController@search')->name('search');
});

하지만 URI를 정리하고 노선명을 정리하고 싶을 때나 여기에 middleware 가입하고 싶을 때도 있다.
이 경우 Route::group 사용할 수 있습니다.
루트 그룹은 루트 속성을 통일적으로 응용하는 방법이지 모든 루트에 루트 속성을 정의하는 것이 아니다. 예를 들어 많은 루트에서 통용되는 중간부품이나 이름 공간이다.Route::그룹 방법의 첫 번째 매개 변수는 그룹에 공통 속성을 지정합니다.
아래와 같이 하나하나든 여러 개든 사용할 수 있습니다. 공통적으로 정리하면 적극적으로 사용하고 싶습니다.
web.php
//複数(URI、ルート名)でのグループ化
Route::group(['prefix' => 'main', 'as' => 'main.'], function () {
    Route::get('list','MainController@list')->name('list');
    Route::get('edit','MainController@edit')->name('edit');
    Route::get('search','MainController@search')->name('search');
});

//URIでのグループ化
Route::group(['prefix' => 'main'], function () {
    Route::get('list','MainController@list')->name('main.list');
    Route::get('edit','MainController@edit')->name('main.edit');
    Route::get('search','MainController@search')->name('main.search');
});

//ルート名でのグループ化
Route::group(['as' => 'main.'], function () {
    Route::get('/main/list','MainController@list')->name('list');
    Route::get('/main/edit','MainController@edit')->name('edit');
    Route::get('/main/search','MainController@search')->name('search');
});

//ミドルウェアでのグループ化
Route::group(['middleware' => ['auth']], function () {
    Route::get('/main/list','MainController@list')->name('main.list');
    Route::get('/main/edit','MainController@edit')->name('main.edit');
    Route::get('/main/search','MainController@main')->name('main.search');
});

// whereもつかえる
Route::group(['prefix' => '{user_id}', 'where' => ['user_id' => '[0-9]+']], function () {
    Route::get('/edit','UserController@edit')->name('users.edit');
});

잘못되거나 더 좋은 방법이 있다면 지적해 주세요.

좋은 웹페이지 즐겨찾기