라우팅 변수 규칙


라우팅 변수 규칙

라우팅 규칙을 마스터하려면 정규식에 대한 기본 지식이 있어야 합니다.

시스템의 기본 변수 규칙 설정은 w+이며 문자, 숫자, 중국어 및 밑줄만 일치합니다. 특수 기호 및 기타 문자와 일치하므로 변수 규칙을 정의하거나 기본 변수 규칙을 조정해야 합니다.

밑줄 문자 일치를 추가하는 등 라우팅 구성 파일에서 기본 변수 규칙을 사용자 정의할 수 있습니다.

'default_route_pattern'	=>	'[\w\-]+',

규칙 라우팅에서 변수 규칙 지정을 지원합니다. 이는 동적 변수가 특정 유형을 제한할 수 없는 문제를 보완하고 지원합니다. 전역 규칙 설정. 사용법은 다음과 같습니다.

로컬 변수 규칙

로컬 변수 규칙은 현재 경로에서만 유효합니다.

// 定义GET请求路由规则 并设置name变量规则
Route::get('new/:name', 'News/read')
    ->pattern(['name' => '[\w|\-]+']);

처음에 ^를 추가하거나 끝에 $를 추가할 필요가 없으며 모드 수정자는 다음과 같습니다. 지원되지 않습니다. 시스템이 자동으로 추가합니다.

전역 변수 규칙

전역 변수 규칙을 설정하면 모든 경로가 유효합니다.

// 支持批量添加
Route::pattern([
    'name' => '\w+',
    'id'   => '\d+',
]);

결합 변수

라우팅 규칙이 특별한 경우 경로를 정의할 때 조합 변수를 사용할 수 있습니다.

예를 들어

Route::get('item-<name>-<id>', 'product/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

결합형 변수의 장점은 라우팅 규칙에 고정된 구분자가 없다는 점입니다. 필요한 변수 규칙과 구분자를 마음대로 결합할 수 있습니다. 예를 들어 라우팅 규칙을 다음과 같이 변경할 수 있습니다. :

Route::get('item<name><id>', 'product/detail')
    ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']);
Route::get('item@<name>-<id>', 'product/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

결합된 변수의 사용 선택적 변수를 사용해야 하는 경우 다음 방법을 사용할 수 있습니다.

Route::get('item-<name><id?>', 'product/detail')
    ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']);

Dynamic Routing

라우팅 규칙의 변수를 라우팅 주소에 전달할 수 있습니다. 예를 들어 동적 라우팅을 구현합니다.

// 定义动态路由
Route::get('hello/:name', 'index/:name/hello');

name 변수의 값이 라우팅 주소로 전달됩니다.

동적 라우팅의 변수는 결합된 변수와 어셈블리도 지원합니다. 예:

Route::get('item-<name>-<id>', 'product_:name/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);