우리는 네트워크의 라우터가 경로를 선택하고 패킷을 전달하는 데 사용된다는 것을 알고 있습니다. 그렇다면 프레임워크의 경로는 무엇에 사용됩니까? 여기서 경로는 http 요청을 받는 경로이며, 해당 경로를 설정하여 특정 프로그램의 기능에 접근할 수 있습니다. 라우팅은 프레임워크의 핵심 기능 중 하나이며 기본적으로 모든 주류 프레임워크에는 라우팅 기능이 있습니다. 또한 길고 깊은 경로를 짧고 얕은 경로로 변환하도록 라우팅을 설정할 수 있습니다(SEO에 매우 유용한 기능).
기본 라우팅 파일
모든 laravel 경로는 루트 디렉터리의 경로 디렉터리에 있는 라우팅 파일에 정의됩니다. 프레임워크는 기본적으로 이 디렉터리에 파일을 자동으로 로드합니다. Routes/web.php 파일을 살펴보겠습니다
use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('welcome'); });
Basic Routing
이제 web.php 파일에서 가장 간단한 새로운 Route를 생성합니다. 코드는 다음과 같습니다:
Route::get('index', function () { return "study laravel"; });
이제, 우리는 브라우저에 localhost:8000/index를 입력하면 "study laravel"이라는 문장을 볼 수 있습니다.
일반적인 라우팅 방법
위에서 언급한 get 방법 외에도 일반적으로 사용되는 라우팅 방법은 post, put, delete, any, match입니다.
여기서 any 메소드는 요청 메소드가 무엇이든 get/post/put 및 기타 요청 메소드가 될 수 있으며 모두 처리한다는 의미입니다. Match를 사용하여 여러 요청을 지정할 수 있습니다. 다음은 match의 사용법을 보여줍니다.
Route::match(['get', 'post'], "list", function () { return 'list'; });
매개변수 전달
종종 경로에 매개변수를 추가합니다. 예를 들어 /news/1은 매우 일반적입니다. lavarel의 라우팅 방법은 다음과 같은 매개변수 전달을 지원합니다.
Route::get('news/{id}', function ($id) { return 'news:' . $id; });
위 경로는 매개변수를 전달할 수 있지만 여전히 내 요구 사항을 충족할 수 없습니다. 매개변수 {id}가 숫자여야 한다면 다음과 같을 수 있습니다.
Route::get('news/{id}', function ($id) { return 'news:' . $id; })->where('id', '\d+');
us 여러 매개변수를 전달할 수도 있으며 클로저의 매개변수는 다음과 같이 자동으로 일대일로 대응됩니다.
Route::get('/name/{name}/age/{age}', function($name, $age) { echo "name:$name age:$age"; })->where(['name' => '\w+', 'age' => '\d+']);
라우팅 및 컨트롤러 바인딩
먼저 컨트롤러 파일 appHttpControllersIndexController.php를 만듭니다. , 코드는 다음과 같습니다.
<?php namespace App\Http\Controllers; class IndexController extends Controller { public function news ($id) { echo "news:$id"; } }
이제 라우팅 파일 web.php를 수정합니다
Route::get('news/{id}', 'IndexController@news')->where('id', '\d+');
이제 /news/1을 통해 IndexController 컨트롤러의 뉴스 메소드에 액세스할 수 있습니다.
app/Http/Controllers/Home/IndexController.php가 생성되면 이 컨트롤러의 라우팅을 어떻게 설정하나요? 방법은 다음과 같습니다.
Route::get('home', 'Home\IndexController@index');
위 내용은 Laravel 강의 2: 경로 정의 및 컨트롤러 바인딩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!