>  기사  >  백엔드 개발  >  Laravel 514 Bootstrap 334 참고 2: Laravel 라우팅

Laravel 514 Bootstrap 334 참고 2: Laravel 라우팅

WBOY
WBOY원래의
2016-07-30 13:31:50955검색

1 라우팅 메커니즘

MVC에서 라우팅은 매우 중요한 기능이며, 그 기능은 다음과 같습니다.
사용자 액세스(URL) 기반 매칭. 수신 요청 및 요청에 첨부된 매개변수
B. 요청 매핑 컨트롤러의 Action 메서드를 호출하고 매개변수를 전달합니다. 결과 처리를 위한 작업 방법
다음 그림은 간단한 형식의 사용자 요청을 나타냅니다.


2 Laravel의 라우팅

Laravel 5.1.4에서 라우팅 구성 파일은 app/Http/routes.php입니다.

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]+');


http://localhost:801/new/abc에 접속할 때 제공된 페이지가 존재하지 않습니다:


따라서 여러 매개변수를 동시에 제한하는 경우 배열을 사용해야 합니다. 위 예에서 라우팅 코드를 수정하세요.

여기서는 접속 효과를 보여주지 않습니다.
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.