>  기사  >  PHP 프레임워크  >  하나의 기사에서 Laravel 프레임워크의 모든 기본 라우팅 지식을 알아보세요.

하나의 기사에서 Laravel 프레임워크의 모든 기본 라우팅 지식을 알아보세요.

Mini
Mini원래의
2020-05-21 15:51:21166검색

이 섹션에서는 주로 Laravel 프레임워크의 라우팅에 대한 세부 사항을 설명하며 주로 라우팅의 정의, 매개변수, 규칙, 액세스 컨트롤러 및 기타 작업을 설명합니다.

1. 일반적인 라우팅 작업

문법

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

일반적인 라우팅 방법

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


컨트롤러

Route::post('/',  'WelcomeController@index');
Route::get('/',  'WelcomeController@index');
Route::delete('/',  'WelcomeController@index');

모든 요청 방법이 일치

Route::any(['get', 'post'], '/', function () {
    return view('welcome');
});
Route::any(['get', 'post'], '/', 'WelcomeController@index');

화이트리스트 배열 일치 일치 조합

Route::match(['get', 'post'], '/', function () {
    return view('welcome');
});
Route::match(['get', 'post'],'/', 'WelcomeController@index');

Redirect 라우팅

Route::redirect('/here',  '/404',  404);

두 번째, 매개변수 라우팅

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
});


정규 모드 매개변수 라우팅

Route::get('page/{id}', function ($id) {    
    return '页面ID: ' . $id;
})->where('id', '[0-9]+');
Route::get('page/{name}', function ($name) {    
    return '页面名称: ' . $name;
})->where('name', '[A-Za-z]+');
Route::get('page/{id}/{slug}', function ($id, $slug) {    
    return $id . ':' . $slug;
})->where(['id' => '[0-9]+', 'slug' => '[A-Za-z]+']);


3.라우팅 별칭( user.profile로 접속)

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
})->name('user.profile');

// 접속방법 :

<a href="{{ route(&#39;user.profile&#39;, [&#39;id&#39; => 100]) }}">


4. 라우팅 그룹핑

Route::group([], function () {     
    Route::get(&#39;hello&#39;, function () {         
        return &#39;Hello&#39;;     
    });     
    Route::get(&#39;world&#39;, function () {         
        return &#39;World&#39;;     
    });
});

5. 라우팅 그룹핑, 미들웨어 (2가지 방식 - 일반용 두번째 유형)

Route::middleware(&#39;auth:api&#39;)->group(function () {    
    Route::get(&#39;dashboard&#39;, function () {        
        return view(&#39;dashboard&#39;);    
    });    
    Route::get(&#39;account&#39;, function () {        
        return view(&#39;account&#39;);    
    });
});

또는

Route::group([&#39;middleware&#39; => &#39;auth:api&#39;], function () {     
    Route::get(&#39;dashboard&#39;, function () {         
        return view(&#39;dashboard&#39;);     
    });     
    Route::get(&#39;account&#39;, function () {         
        return view(&#39;account&#39;);     
    });
});

6. 라우팅 경로 접두사

Route::prefix(&#39;api&#39;)->group(function () {    
    Route::get(&#39;/&#39;, function () {        
    // 处理 /api 路由    
    })->name(&#39;api.index&#39;);   
     
    Route::get(&#39;users&#39;, function () {        
    // 处理 /api/users 路由    
    })->name(&#39;api.users&#39;);
});

7. 라우팅 하위 도메인 이름

Route::domain(&#39;{account}.blog.test&#39;)->group(function (){    
    Route::get(&#39;/&#39;, function ($account) {        
        //TODO    
    });    

    Route::get(&#39;user/{id}&#39;, function ($account, $id) {        
        //TODO    
    });
});

8. 라우팅 네임스페이스

Route::namespace(&#39;Admin&#39;)->group(function() {     
    // App\Http\Controllers\Admin\AdminController     
    Route::get(&#39;/admin&#39;, &#39;AdminController@index&#39;);
});

경로 네임스페이스, 접두사 , 그룹, 매개변수, 별칭 조합

//경로 이름 지정 + 경로 접두사

Route::name(&#39;user.&#39;)->prefix(&#39;user&#39;)->group(function () {    
    Route::get(&#39;{id?}&#39;, function ($id = 1) {        
        // 处理 /user/{id} 路由,路由命名为 user.show        
        return route(&#39;user.show&#39;);    
    })->name(&#39;show&#39;);  
      
    Route::get(&#39;posts&#39;, function () {        
        // 处理 /user/posts 路由,路由命名为 user.posts    
    })->name(&#39;posts&#39;);
});


9. 현재 경로에 액세스

$route  = Route::current();
$name   = Route::currentRouteName();
$action = Route::currentRouteAction();

10. 라우팅 캐시 지우기

php artisan route:cache

11. 라우팅 캐시 삭제

php artisan route:clear


요약:

위의 학습 요약을 통해 Laravel의 경로 정의, 액세스 방법을 배웠습니다. 라우팅은 초보자에게 매우 편리하고 배우기 쉽습니다.

위 내용은 하나의 기사에서 Laravel 프레임워크의 모든 기본 라우팅 지식을 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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