1 라우팅 메커니즘
MVC에서 라우팅은 매우 중요한 기능이며, 그 기능은 다음과 같습니다.
사용자 액세스(URL) 기반 매칭. 수신 요청 및 요청에 첨부된 매개변수
B. 요청 매핑 컨트롤러의 Action 메서드를 호출하고 매개변수를 전달합니다. 결과 처리를 위한 작업 방법
다음 그림은 간단한 형식의 사용자 요청을 나타냅니다.
2 Laravel의 라우팅
2.1 문자열을 직접 반환하도록 라우팅
원래 코드 뒤에 다음 코드 조각을 추가합니다.브라우저 열기 방문 : http://localhost:801/hw, 아래와 같이 표시됩니다.
Route::get('/hw', function () { return 'Hello World'; });
2.2 뷰 반환 경로
resources/views 디렉터리에 다음 내용이 포함된 home.php 보기 파일을 만듭니다.
Route::get('/home', function () { return view('home'); });브라우저를 열어 http://localhost:801/home을 방문하세요.
<html> <body> <h1>home</h1> </body> </html>
코드가 위의 예 보기 페이지에 매개변수를 전달해야 하는 경우 어떻게 해야 합니까? 라우팅 코드 수정:
Route::get('/home', function () { return view('home', ['name' => '张三']); });방문 효과를 살펴보세요.
<html> <body> [<?php echo $name; ?>],您好! </body> </html>뷰가 너무 많으면 일반적으로 모듈이나 함수별로 저장됩니다. resources/views 디렉터리에 새 디렉터리를 만듭니다. : public /demo를 입력하고 home.php를 이 디렉토리로 이동합니다.
위 예시의 라우팅 코드를 다음과 같이 수정하세요.
다시 방문하시면 페이지를 정상적으로 열 수 있습니다.
Route::get('/home', function () { return view('public.demo.home', ['name' => '张三']); });2.3 라우팅 매개변수
브라우저를 열어 다음 주소에 액세스합니다. http://localhost:801/user/jack
Route::get('user/{name}', function($name) { return '用户姓名:'.$name; });
매개변수가 2개라면? 라우팅 코드 수정:
브라우저를 열고 다음을 방문하세요: http://localhost:801/user/jack/23
Route::get('user/{name}/{age}', function($name,$age) { return '用户姓名:'.$name.',年龄:'.$age; });
액세스 주소: http://localhost:801/user/jack
Route::get('user/{name}/{age?}', function($name,$age=null) { return '用户姓名:'.$name.',年龄:'.$age; });
2.4 라우팅 매개변수 제약 조건
일반적인 상황에서 사용자가 액세스하는 일부 매개변수에는 특정 규칙이 있습니다. 예를 들어 사용자 정보를 읽을 때의 사용자 ID는 숫자일 수 있고, 뉴스 정보를 수정할 때의 뉴스 ID는 다음과 같습니다. GUID 등입니까?routes.php 파일을 수정하고 다음 코드를 추가합니다.
브라우저를 열어 http://localhost:801/new를 방문합니다. /3 예 다음과 같습니다:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; })->where('id', '[0-9]+');
여기서는 접속 효과를 보여주지 않습니다.
Route::get('new/{id}/{title}', function($id,$title) { return '新闻ID:'.$id.',新闻标题:'.$title; })->where(['id' => '[0-9]+', 'title' => '[a-z]+']);또한 전역 제한을 구성하고 app/Providers/RouteServiceProviders.php 파일을 열고 다음과 같이 부팅 방법을 수정할 수 있습니다.
public function boot(Router $router) { // $router->pattern('id', '[0-9]+'); parent::boot($router); }위 예의 라우팅 코드를 다음과 같이 수정합니다.
액세스 효과 및 위의 예는 동일합니다. 여기서는 설명하지 않습니다.
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; });2.5 라우팅 매개변수 가져오기
routes.php에서 라우팅 매개변수를 가져와서 위의 예에서 라우팅 코드를 수정할 수 있습니다.
Route::get('new/{id}', function(Request $request, $id) { if ($request->route('id') == '2') { return '新闻ID是2'; }else{ return '新闻ID不是2,值是:'.$id; } });
routes.php에서
use Illuminate\Http\Request;브라우저를 열고 http://localhost:801/new/2 및 http://localhost:801 각각 /new/를 방문하세요. 3 다양한 페이지 효과를 확인하세요.
라우팅에는 아직 연구해야 할 복잡한 기능이 많이 있습니다.
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
위 내용은 Laravel 514 Bootstrap 334 참고 2: Laravel 라우팅 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.