>  기사  >  PHP 프레임워크  >  laravel의 각 페이지가 경로를 정의해야 하는지에 대한 간략한 분석

laravel의 각 페이지가 경로를 정의해야 하는지에 대한 간략한 분석

PHPz
PHPz원래의
2023-04-03 17:55:16648검색

Laravel에서 라우팅은 URL을 해당 컨트롤러의 메서드와 연결하는 메커니즘을 의미합니다. Laravel의 라우팅을 사용하면 애플리케이션의 URL을 매우 편리하게 관리하고, URL 친화성을 달성하고, 컨트롤러와 메소드를 빠르고 유연하게 찾을 수 있습니다.

그렇다면 각 페이지에 대한 경로를 정의해야 합니까? 대답은 물론 아니오이다. 아래에서 자세히 설명하겠습니다.

일반적인 웹사이트 애플리케이션의 경우 일반적으로 많은 모듈과 기능이 포함되어 있으며 각 모듈과 기능에는 해당 페이지가 있습니다. 각 페이지마다 경로를 정의하면 매우 번거롭고 중복되며 경로가 너무 많아 유지 관리가 불편해집니다.

따라서 라우팅 설계를 단순화하려면 몇 가지 기술을 사용해야 합니다.

먼저 몇 가지 라우팅 규칙을 정의할 수 있습니다. 예를 들어 웹사이트의 모든 기사 관련 페이지는 "/article/"로 시작하고 다음 코드를 통해 이러한 관련 페이지에 대한 라우팅 규칙을 정의할 수 있습니다.

Route::group(['prefix' => 'article'], function () {
    Route::get('/', 'ArticleController@index');
    Route::get('/detail/{id}', 'ArticleController@detail');
    Route::get('/edit/{id}', 'ArticleController@edit');
});

이러한 라우팅 규칙을 통해 "/article/ "에 액세스합니다. ArticleController의 index 메서드에 대해 "/article/detail/{id}"에 액세스하는 것은 ArticleController의 세부 메서드에 해당하고, "/article/edit/{id}"에 액세스하는 것은 ArticleController의 edit 메서드에 해당합니다.

둘째, 리소스 라우팅을 사용하면 라우팅을 보다 편리하게 관리할 수 있습니다. Laravel에서 리소스 라우팅은 여러 관련 경로에 대해 동일한 요청 유형과 경로를 정의하는 매우 편리한 방법입니다. 예를 들어 기사 관련 리소스 라우팅을 다음과 같이 정의할 수 있습니다.

Route::resource('article', 'ArticleController');

이때 다음 링크를 통해 해당 컨트롤러 메소드에 액세스할 수 있습니다.

  • GET /article: 기사 목록 인터페이스 표시
  • GET /article /create: 기사 생성 인터페이스 표시
  • POST /article: 새 기사 생성
  • GET /article/{id}: 지정된 기사의 세부 정보 인터페이스 표시
  • GET /article/{id}/edit: 수정 표시 지정된 기사의 인터페이스
  • PUT/PATCH /article/{id}: 지정된 기사 업데이트
  • DELETE /article/{id}: 지정된 기사 삭제

마지막으로 자동 경로 생성 메커니즘을 사용할 수도 있습니다. 라우팅 설계를 단순화하기 위해 Laravel에서 제공합니다. Laravel에서는 다음 코드를 사용하여 컨트롤러의 메서드에 대한 경로를 일괄 생성할 수 있습니다:

Route::controller('article', 'ArticleController');

그런 다음 다음 링크를 통해 해당 컨트롤러 메서드에 액세스할 수 있습니다:

  • GET /article: 기사 목록 인터페이스 표시, 해당 컨트롤러 메서드는 getIndex()
  • GET /article/create: 기사 생성 인터페이스를 표시하고 해당 컨트롤러 메서드는 getCreate()
  • POST /article: 새 기사를 생성하며 해당 컨트롤러 메서드는 postIndex()
  • GET /article/{id}: 지정된 기사의 세부사항 인터페이스를 표시합니다. 해당 컨트롤러 메소드는 getShow($id)
  • GET /article/{id}/edit: 지정된 기사를 수정하기 위한 인터페이스를 표시합니다. 컨트롤러 메소드는 getEdit($id)
  • PUT/PATCH /article/{id}: 지정된 기사를 업데이트하고 해당 컨트롤러 메소드는 putIndex($id)
  • DELETE /article/{id}: 삭제 기사를 지정하려면 , 해당 컨트롤러 메소드는 deleteIndex($id)

위의 세 가지 메소드를 통해 각 페이지마다 경로를 정의하지 않고도 비교적 쉽게 라우팅을 관리할 수 있습니다. 물론, 모든 페이지에 라우팅이 필요하지 않다는 의미는 아니며, 표시해야 하는 페이지도 해당 라우팅을 통해 관리해야 하지만 합리적인 설계를 통해 라우팅이 너무 중복되고 번거로워지는 것을 피할 수 있습니다.

위 내용은 laravel의 각 페이지가 경로를 정의해야 하는지에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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