Laravel 라우팅의 정의 및 사용에 대한 자세한 소개

PHPz
풀어 주다: 2023-04-03 20:32:19
원래의
816명이 탐색했습니다.

Laravel은 PHP를 위한 탁월한 프레임워크이며 오늘날 웹 개발에서 점점 더 인기를 얻고 있습니다. Laravel은 많은 편리한 기능을 제공하며 중요한 기능 중 하나는 라우팅입니다. 그렇다면 Laravel의 경로는 어디에 정의되어 있습니까? 이번 글에서는 Laravel 라우팅의 정의와 사용법을 자세히 소개하겠습니다.

경로 정의

Laravel의 경로는 수동으로 정의된 경로, 자동 경로 및 RESTful 경로의 세 가지 방법으로 정의할 수 있습니다. 이 세 가지 방법을 별도로 소개하겠습니다.

경로 수동 정의

경로 수동 정의는 특정 URL이 포함된 URI를 정의하는 데 널리 사용되는 방법입니다. Laravel은 Route 클래스의 메소드를 통해 이를 달성합니다. Route 클래스는 많은 라우팅 관련 메서드를 포함하는 전역 도우미 클래스입니다. 여기서는 경로를 수동으로 정의하여 "Hello world"를 반환하는 예를 구현합니다. Route类中的方法来实现这一点。 Route类是一个全局的助手类,其包含许多与路由相关的方法。 在这里我们以手动定义路由的方式来实现一个返回"Hello world"的示例。

Route::get('/hello', function () {
    return 'Hello World';
});
로그인 후 복사

当访问 http://your-app.com/hello时,将会显示"Hello World"的信息。

上面的例子中,我们使用HTTP的GET方法来获取 /hello 的URI,并返回了简单的字符串“Hello World”。除了GET方法外,还有一些其他的HTTP方法,例如POST、PUT、DELETE等,可以根据需求使用。

自动路由

在Laravel中,可以通过使用Route::controller 方法来自动生成路由。该方法将会使用控制器中的方法作为URI来响应访问请求。

Route::controller('/user', 'UserController');
로그인 후 복사

上面的代码定义了一个URI /user,并使用UserController控制器中的方法来处理访问请求。在控制器中,我们可以定义一系列接受URI的函数,这些函数会被自动路由注册。

比如,一个控制器可能被定义为:

class UserController extends Controller
{
    public function getIndex()
    {
        // 返回用户首页
    }

    public function postUser()
    {
        // 处理用户提交的表单数据
    }
}
로그인 후 복사

通过上述定义,当访问 /user URI时,UserControllergetIndex方法将会被调用;而当使用POST方法访问/user/user时,UserControllerpostUser方法将会被调用。

RESTful路由

RESTful路由是一种针对资源进行操作的路由方式。在Laravel中,我们可以使用Route::resource方法自动注册所有的RESTful路由。这种方式是一种非常便利和常用的方式,它可以将一个控制器中的所有RESTful操作集中在一起。

Route::resource('/user', 'UserController');
로그인 후 복사

上述代码将会注册一个名为 /user 的URI,并在UserController中注册名为indexcreatestoreshoweditupdatedestroy的方法。

路由的使用

在Laravel中,我们可以使用路由参数来定义URL并获取URI中的变量信息。我们可以通过在URI中使用大括号包裹参数名的方式,定义一个路由参数。 如下是一个带有路由参数的示例。

Route::get('/user/{id}', function ($id) {
    return 'User ' . $id;
});
로그인 후 복사

在上面的示例中,我们定义了一个名为 id 的路由参数。 当访问 /user/1 时,将会打印输出"User 1";访问 /user/2 时,将会输出"User 2"。

在控制器中,我们也可以通过路由参数接收URI中的变量信息。以下代码展示了其中的方法:

Route::get('/user/{id}', 'UserController@show');

class UserController extends Controller
{
    public function show($id)
    {
        return view('user.show', ['user' => User::findOrFail($id)]);
    }
}
로그인 후 복사

在上述示例中,我们定义了一个被称为 id 的路由参数,并在控制器的show方法中使用它来查询数据库中的用户信息。通过使用findOrFail()rrreee

http://your-app.com/hello에 접속하면 "Hello World" 메시지가 출력됩니다.

위의 예에서는 HTTP GET 메서드를 사용하여 /hello의 URI를 얻고 간단한 문자열 "Hello World"를 반환했습니다. GET 메소드 외에도 필요에 따라 사용할 수 있는 POST, PUT, DELETE 등과 같은 다른 HTTP 메소드가 있습니다.

자동 라우팅🎜🎜Laravel에서는 Route::controller 메소드를 사용하여 자동으로 경로를 생성할 수 있습니다. 이 메서드는 컨트롤러의 메서드를 URI로 사용하여 액세스 요청에 응답합니다. 🎜rrreee🎜위 코드는 URI /user를 정의하고 UserController 컨트롤러의 메서드를 사용하여 액세스 요청을 처리합니다. 컨트롤러에서 URI를 허용하는 일련의 함수를 정의할 수 있으며 이러한 함수는 자동으로 라우팅되고 등록됩니다. 🎜🎜예를 들어 컨트롤러는 다음과 같이 정의될 수 있습니다. 🎜rrreee🎜위 정의를 사용하면 /user URI에 액세스할 때 UserControllergetIndex code> 메소드가 호출되고 POST 메소드를 사용하여 <code>/user/user에 액세스할 때 UserControllerpostUser 메소드가 호출됩니다. . 🎜🎜RESTful 라우팅🎜🎜RESTful 라우팅은 리소스에서 작동하는 라우팅 방법입니다. Laravel에서는 Route::resource 메소드를 사용하여 모든 RESTful 경로를 자동으로 등록할 수 있습니다. 이 방법은 모든 RESTful 작업을 컨트롤러에 중앙 집중화하는 데 매우 편리하고 일반적으로 사용되는 방법입니다. 🎜rrreee🎜위 코드는 /user라는 URI를 등록하고 UserControllerindexcreate라는 이름을 등록합니다. , 저장, 표시, 편집, 업데이트파기 메서드. 🎜🎜라우팅 사용🎜🎜Laravel에서는 라우팅 매개변수를 사용하여 URL을 정의하고 URI에서 변수 정보를 얻을 수 있습니다. URI에서 매개변수 이름을 중괄호로 묶어 라우팅 매개변수를 정의할 수 있습니다. 다음은 라우팅 매개변수의 예입니다. 🎜rrreee🎜위의 예에서는 id라는 경로 매개변수를 정의했습니다. /user/1에 액세스하면 "User 1"이 인쇄되고, /user/2에 액세스하면 "User 2"가 인쇄됩니다. 🎜🎜컨트롤러에서는 라우팅 매개변수를 통해 URI의 변수 정보를 받을 수도 있습니다. 다음 코드는 메소드를 보여줍니다. 🎜rrreee🎜위의 예에서는 id라는 라우팅 매개변수를 정의하고 컨트롤러의 show 메소드에서 이를 사용하여 데이터 베이스. findOrFail() 메소드를 사용하면 사용자가 존재하지 않는 상황을 처리하는 것이 매우 편리합니다. 동시에 표시 및 사용을 위해 쿼리된 사용자 정보를 뷰에 전달할 수도 있습니다. 🎜🎜요약🎜🎜Routing은 Laravel에서 매우 중요하고 일반적으로 사용되는 기능으로, URI와 컨트롤러 간의 관계를 쉽게 정의할 수 있습니다. 라우팅 매개변수, RESTful 라우팅 등을 통해 특정 리소스에 쉽게 접근할 수 있고, 운영이 매우 편리해졌습니다. Laravel 라우팅의 정의와 사용을 마스터하면 웹 개발 효율성과 코드 품질을 크게 향상시킬 수 있습니다. 🎜

위 내용은 Laravel 라우팅의 정의 및 사용에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿