이전 기사에서는 이미 라우팅에 대한 몇 가지 지식을 설명했으며 오늘은 계속해서 몇 가지 사항을 추가하겠습니다.
라우팅 매개변수에 대한 전역 제약
우리는 다음과 같이 where 메소드를 사용하여 매개변수를 제한할 수 있다는 것을 이미 알고 있습니다.
Route::get('news/{id}', function ($id) { echo 'news:' . $id; })->where('id', '[0-9]+'); Route::get('list/{id}', function ($id) { echo 'list:' . $id; })->where('id', '[0-9]+');
이 ID와 관련하여 여러 개의 경로가 사용되고 제약 조건이 동일한 경우 . 그런 다음 전역 규모로 ID를 제한할 수 있습니다. 이러한 방식으로 로컬 라우팅을 제한할 필요가 없으며 코드가 중복되지 않습니다.
이제 app/Providers/RouteServiceProvider.php에서 부팅 방법을 편집하고 다음과 같이 코드 줄을 추가해 보겠습니다.
public function boot() { Route::pattern('id', '[0-9]+'); parent::boot(); }
일단 정의되면 이 규칙은 이 매개변수 이름을 사용하는 모든 경로에 자동으로 적용됩니다. 하지만 이 제한을 취소하거나 개별 경로에 대한 매개변수 규칙을 재설정하려면 어떻게 해야 합니까?
재설정하려면 where 메소드에서 규칙을 재설정하세요
Route::get('news/{id}', function ($id) { echo 'news:' . $id; })->where('id', '[a-z]');
제한을 취소하는 방법은 실제로 규칙을 재설정하는 것이지만 규칙에서 .*를 사용하여 모든 문자를 정규화합니다
Route::get('news/{id}', function ($id) { echo 'news:' . $id; })->where('id', '.*');
경로 리디렉션
한 경로에서 다른 주소 또는 다른 경로로 이동할 수 있습니다. Route
// 跳转到php中文网 Route::redirect('index', ' // 跳转到本站另一个路由 Route::redirect('a', 'news/1');의 리디렉션 방법을 사용하세요.
경로 리디렉션은 기본적으로 302 임시 리디렉션을 사용합니다. 301 영구 리디렉션을 설정하려면 세 번째 매개변수를 설정해야 합니다. 또는 PermanentRedirect라는 다른 방법을 사용하세요.
Route::redirect('b', 'news/1', 301); Route::permanentRedirect('c', 'news/2');
경로와 뷰 바인딩
경로는 컨트롤러를 거치지 않고 뷰에 직접 바인딩할 수도 있습니다. 여기서는 uri(필수 매개변수), 뷰 이름(필수 매개변수), 매개변수(선택 매개변수)의 세 가지 매개변수가 있는 view 메소드를 사용해야 합니다.
Route::view('vtest', 'view1', ['str' => 'study laravel']);
이제 view1이라는 뷰 파일을 생성하고 resources/views 디렉터리에 view1.blade.php 파일을 생성해 보겠습니다. 파일 내용은 다음과 같습니다.
view1{{$str}}
Route::view를 사용하는 것 외에도 다음을 사용할 수 있습니다. get 또는 other 동일한 효과를 얻으려면 메소드 클로저에서 전역 보기 기능을 사용하십시오.
아아아아위 내용은 Laravel 강의 3: 라우팅 매개변수, 라우팅 리디렉션 및 라우팅 뷰 바인딩에 대한 전역 제약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!