> PHP 프레임워크 > Laravel > Laravel 강의 4: 경로 이름 지정 및 경로 그룹화

Laravel 강의 4: 경로 이름 지정 및 경로 그룹화

齐天大圣
풀어 주다: 2020-12-10 09:10:47
원래의
2511명이 탐색했습니다.

경로 이름 지정

경로 이름 지정은 프로그램이 라우팅 정보를 쉽게 얻을 수 있도록 하기 위한 것입니다. 이 정보를 사용하여 리디렉션하거나 다른 작업을 수행할 수 있습니다. 라우팅 명령은 name 메소드를 통해 구현됩니다. 다음으로 경로 이름을 지정해 보겠습니다.

Route::get('about', function () {})->name('index.about');
로그인 후 복사

경로 이름을 지정한 후 보조 기능 경로를 통해 경로의 URL을 얻을 수 있습니다.

$url = route('index.about');
echo $url;  // http://localhost:8000/about
로그인 후 복사

앞쪽 도메인 이름 부분은 원하지 않고 뒷쪽 경로만 원한다면 이렇게 하면 됩니다

$url = route('index.about', [], false);
echo $url;  // /about
로그인 후 복사

매개변수로 경로를 정의하면 매개변수를 두 번째 매개변수로 전달할 수 있습니다. 경로 함수

Route::get('news/{id}', 'IndexController@news')->name('home.news');

...
return redirect()->route('home.news', ['id' => 23]);
로그인 후 복사

경로 함수의 두 번째 매개변수 배열 요소는 라우팅 매개변수에 자동으로 대응할 수 있습니다. 경로 함수의 두 번째 매개변수 배열 요소가 경로에 설정된 매개변수보다 크면 URL이 자동으로 연결됩니다. URL을 생성하려면

echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]);
// http://localhost:8000/news/23?page=3&page_num=20
로그인 후 복사

route grouping

라우트 그룹화의 역할은 시스템이 여러 개의 경로를 설정했지만 일부 경로에 동일한 네임스페이스 접두사가 있는 등 공통점이 있는 경우, 또는 동일한 경로 접두사를 사용하면 공통점이 있는 경로를 그룹화할 수 있습니다. 이러한 경로를 하나의 경로에 넣으면 관리가 용이해지고 코드 양이 줄어들며 코드가 더 우아해 보입니다.

경로 접두어

우리는 동일한 접두어를 가진 경로를 그룹에 넣습니다. 다음은 동일한 접두사를 가진 두 개의 경로입니다.

Route::prefix('index')->get('a', function () {
    return 'a'; // 匹配/index/a
});

Route::prefix('index')->get('b', function () {
    return 'b'; // 匹配/index/b
});
로그인 후 복사

이제 그룹에 넣습니다.

Route::prefix('index')->group(function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});
로그인 후 복사

접두사 방법을 사용하는 것 외에도 아래와 같이 그룹 방법의 첫 번째 매개 변수에 설정할 수도 있습니다.

Route::group(['prefix' => 'index'], function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});
로그인 후 복사

Namespace

네임스페이스도 자주 사용되는 라우팅 그룹입니다.

Route::group(['namespace' => 'Home'], function ()
{
    Route::get('home/index', 'IndexController@index');
});
로그인 후 복사

위 코드에서 네임스페이스를 설정하지 않은 경우 위 경로는

Route::get('home/index', 'Home\IndexController@index');
로그인 후 복사

Subdomain name

입니다. 이 도메인 이름이 아니면 액세스할 수 있는 도메인 이름을 설정하는 데 사용됩니다. 경로가 올바른 경우에도 액세스할 수 있습니다.

Route::domain('php.cn')->group(...)
로그인 후 복사

이름 접두사

name 메서드는 각 경로 그룹의 경로에 지정된 접두사를 추가할 수 있습니다

Route::name('abc.')->group( function ()
{
    Route::get('home', function () {

    })->name('home');
});

……
$url = route('abc.home');
로그인 후 복사

위 내용은 Laravel 강의 4: 경로 이름 지정 및 경로 그룹화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿