품목

라라벨: 라라벨 라우팅 소개

Laravel의 라우팅을 통해 사용자는 모든 애플리케이션 요청을 적절한 컨트롤러로 라우팅할 수 있습니다. Laravel의 대부분의 기본 경로는 클로저와 함께 Uniform Asset Identifier를 인식하고 수락하여 간단하고 표현적인 라우팅 방법을 제공합니다.

루트(루트)란?

경로는 애플리케이션에 대한 요청 URL을 생성하는 방법입니다. 이러한 URL은 웹 사이트의 특정 파일과 연결될 필요가 없으며 사람이 읽을 수 있고 SEO 친화적입니다.

Laravel에서 경로는 파일 폴더 안에 생성됩니다. routes. 그들은 파일에 생성됩니다 web.php 웹 사이트 및 내 api.php API용.

이들 route 그룹에 할당됩니다. middleware 네트워크, 세션 상태 및 보안 강조 표시 CSRF. 의 경로 route/api.php 상태 비저장이며 API 미들웨어 그룹에 할당됩니다.
사전 설치defiLaravel nita에는 웹용과 API용의 두 가지 경로가 있습니다. 웹 인의 경로는 다음과 같습니다. web.php:

Route::get('/', function () {
   return view('welcome');
});

Laravel의 경로는 무엇입니까?

모든 Laravel 경로는 defi디렉토리 내에 있는 경로 파일의 niti routes. 경로 관리 응용 프로그램, defi파일에서 완성 App\Providers\RouteServiceProvider, 이러한 파일을 자동으로 정렬합니다. 파일 route/web.php defi웹 인터페이스의 경로를 완료합니다.

È 가능성 defi다음과 같이 이 컨트롤러 작업의 경로를 완료합니다.

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

Route::resource: 방법 Route::resource 애플리케이션에 필요한 모든 기본 경로를 생성하고 컨트롤러 클래스를 통해 관리됩니다.

요청이 지정된 경로 URI와 일치하면 메서드가 호출됩니다. show defi컨트롤러에서 완료 App\Http\ControllersUserController, 메서드에 경로 매개 변수를 전달합니다.

리소스의 경우 애플리케이션에서 두 가지 작업을 수행해야 합니다. Laravel. 먼저 리소스 경로를 생성해야 합니다. Laravel 삽입, 업데이트, 보기 및 삭제 경로를 제공합니다. 둘째, 삽입, 업데이트, 보기 및 삭제를 위한 메서드를 제공하는 리소스 컨트롤러를 만듭니다.

사전 설치defiLaravel nita는 두 가지 경로를 제공합니다. 하나는 웹용이고 다른 하나는 API용입니다. web.php에서 웹으로의 경로는 다음과 같습니다.

Route::get(‘/’, function () {

return view(‘welcome’);

});

라라벨 미들웨어 요청과 반응 사이의 다리 역할을 합니다. 일종의 필터 구성 요소 일 수 있습니다.

Laravel 작업 미들웨어 클라이언트 응용 프로그램이 검증되었는지 여부를 확인하는 작업이 있습니다. 클라이언트가 확인되면 라우팅이 홈 페이지 또는 로그인 페이지로 리디렉션됩니다.

방법 route

이전 코드 defi홈 페이지에 대한 경로를 완료합니다. 이 경로가 요청을 받을 때마다 get 용 /, 반환합니다 view welcome

모든 Laravel 경로는 defi당신의 니티 routing, dei 디렉토리 안에 있습니다. routes. 따라서, l'AppProvidersRouteServiceProvider 응용 프로그램의 이러한 레코드를 정렬합니다. 파일 route/web.php 웹 인터페이스에 대해 관리되는 경로를 포함합니다.

경로 구조는 매우 간단합니다. 적절한 파일을 엽니다(`web.phpo `api.php) 다음으로 코드 줄을 시작하십시오. `Route:: `, 해당 특정 경로에 할당하려는 요청 다음에 요청 다음에 수행할 기능을 지정합니다.

라라벨은 다음과 같은 경로 메소드를 제공합니다:

  • get
  • post
  • put
  • delete
  • patch
  • options

경로는 defiHTTP, 회신할 경로 및 닫기 또는 컨트롤러를 사용하여 Route 클래스 내의 Laravel에서 니트됩니다.

Laravel에서 경로를 만드는 방법

Laravel에서 자신만의 경로를 만드는 방법을 살펴보겠습니다.

기본 GET 경로

이제 2의 시간표를 인쇄할 기본 경로를 만들겠습니다.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

위의 코드에서 URL에 대한 GET 요청 경로를 만들었습니다. /table, 화면에 2의 시간표를 인쇄합니다.

이제 구구단에서 원하는 숫자를 매개변수화하는 동일한 코드를 살펴보겠습니다.

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

코드에서 'number중괄호 사이의 '는 매개변수, 즉 구구단이 계산될 숫자를 나타냅니다. 유형의 URL이 지정될 때마다 /table/n, 다음 번호 테이블이 인쇄됩니다 n.

두 기능을 하나의 경로에 결합하는 방법도 있습니다. Laravel은 물음표 '?'를 사용하여 선택적 매개변수를 추가할 수 있는 선택적 매개변수 기능을 제공합니다. 선택적 매개변수 및 사전 값 뒤에defi밤. 예를 보자:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

위의 코드에서 우리는 경로 매개변수를 생성하여 숫자를 선택 사항으로 만들었습니다./table` 그러면 기본적으로 2개의 테이블이 생성됩니다.definite 및 사용자가 `/table/{number}그런 다음 숫자 테이블 'number' 생산됩니다.

경로 매개변수에 대한 제약조건으로서의 정규 표현식

이전 예에서 우리는 구구단을 생성하기 위한 경로를 만들었지만 구구단을 생성할 때 오류를 방지하기 위해 경로의 매개 변수가 실제로 숫자인지 어떻게 확인할 수 있습니까?

라라벨에서는 다음을 수행할 수 있습니다. defi` 메서드를 사용하여 경로 매개변수에 대한 제약 조건을 완료합니다.where` 경로 인스턴스에서. `where`는 매개변수 이름과 해당 매개변수에 대한 정규식을 사용합니다.

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

이제 ` 매개변수에 대한 제약 조건의 예를 살펴보겠습니다.{numero}` 함수에 숫자만 전달되도록 합니다.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

위의 코드에서는 경로 번호에 정규식을 사용했습니다. 이제 사용자가 /테이블/아니오 표시됩니다 NotFoundHttpException 예외.

제어 기능이 있는 라라벨 라우팅

라라벨에서는 다음을 수행할 수 있습니다. defi경로에 대한 컨트롤러 메서드를 완료합니다. 컨트롤러 메서드는 모든 작업을 수행합니다. defi사용자가 경로에 액세스할 때마다 nite.
다음 코드를 사용하여 컨트롤러 메서드를 할당합니다. 'functionname' 경로로:

Route:: get ( '/home' , 'YourController@functionname' ) ;

코드는 `Route::` 그리고 defi경로에 대한 요청 방법을 종료합니다. 그후, defi메서드 이름 앞에 @ 기호를 추가하여 메서드와 함께 경로 및 컨트롤러를 완료합니다.

경로에 이름을 지정하십시오

라라벨에서는 다음을 수행할 수 있습니다. defi경로의 이름을 지정하십시오. 이 이름은 종종 매우 유용합니다. 예를 들어 한 위치에서 다른 위치로 사용자를 리디렉션하려는 경우 defi전체 리디렉션 URL을 완료합니다. 당신은 그의 이름을 줄 수 있습니다. 당신은 할 수 있습니다 defi` 메소드를 사용하여 경로 이름을 완료하십시오.name` 경로 인스턴스에서.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

이제 다음 코드를 통해 이 경로의 URL을 다시 생성할 수 있습니다.

$url = route('table');

마찬가지로 이 URL로 리디렉션하는 경우 올바른 구문은 다음과 같습니다.

return redirect()->route('table');

Route Groups

I Route Groups, 문자 그대로 경로 그룹은 Laravel의 필수 기능으로, 경로를 그룹화할 수 있습니다. 경로 그룹은 그룹화된 모든 경로에 특성을 적용하려는 경우에 유용합니다. 경로 그룹을 사용하는 경우 각 경로에 특성을 개별적으로 적용할 필요가 없습니다. 이것은 중복을 방지합니다. 다음과 같은 속성을 공유할 수 있습니다. middleware o namespaces, 센자 defi각 개별 경로에서 이러한 속성을 완료합니다. 이러한 공유 속성은 메소드의 첫 번째 매개변수로 배열 형식으로 전달될 수 있습니다. Route::group.

경로 그룹의 구문

Route::group([], callback);  

비둘기 [ ]: 첫 번째 매개 변수로 그룹 메서드에 전달되는 배열입니다.

의 예 Route Group nel 웹.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

코드에서 defi방법을 찾아보자 그룹(), 여기에는 두 개의 매개변수, 즉 array e closure. 내부 closure, 우리는 할 수 있습니다 defi완료 얼마나 많은 route 우리는 원한다. 위의 코드에서 우리는 defiXNUMX개를 마쳤다 route.

브라우저를 통해 URL에 액세스하는 경우 localhost/myproject/first 그러면 첫 번째 사람이 개입합니다. route 브라우저에 입력 first way route.

URL로 localhost/myproject/second 그 다음 두 번째가 온다 route 브라우저에 입력 second way route.

URL을 사용하는 동안 localhost/myproject/third 그 다음 세 번째가 온다 route 브라우저에 입력 third way route.

접두사 Route Groups

의 접두사 route 여러 사용자에게 공통된 URL 구조를 제공하려는 경우에 사용됩니다. route.

모든 경로의 접두사를 지정할 수 있습니다. defi접두사 배열 옵션을 사용하여 그룹 내 nite Route Groups.

의 예 web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

코드에는 다음 URL에서 액세스할 수 있는 세 가지 경로가 포함되어 있습니다.

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

미들웨어

그룹 내의 모든 경로에 미들웨어를 할당할 수도 있습니다. 미들웨어는 반드시 defi그룹을 만들기 전에 완료되었습니다. 이를 수행하는 방법을 보려면 기사를 읽으십시오. Laravel 미들웨어 작동 방식.

예 :

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

경로 이름 접두사

방법 name 각 이름의 접두사로 사용됩니다. route 지정된 문자열로. 방법에서 name, 접두사에 후행 문자가 있는 문자열을 지정해야 합니다.

web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

최근 기사

어린이를 위한 컬러링 페이지의 장점 - 모든 연령대를 위한 마법의 세계

색칠을 통해 소근육 운동 능력을 키우면 아이들이 글쓰기와 같은 보다 복잡한 기술을 준비할 수 있습니다. 색칠하다…

2 월 2024

미래가 여기에 있습니다: 해운 산업이 글로벌 경제를 어떻게 혁신하고 있습니까?

해군 부문은 150억 시장을 향해 항해해온 진정한 글로벌 경제강국입니다.

1 월 2024

출판사와 OpenAI, 인공지능이 처리하는 정보의 흐름을 규제하기 위한 계약 체결

지난 월요일, Financial Times는 OpenAI와의 계약을 발표했습니다. FT는 세계적 수준의 저널리즘에 라이선스를 부여합니다…

4월 30 2024

온라인 결제: 스트리밍 서비스를 통해 영원히 결제하는 방법은 다음과 같습니다.

수백만 명의 사람들이 스트리밍 서비스 비용을 지불하고 월간 구독료를 지불합니다. 당신은…

4월 29 2024