4. laravel 路由(1)

enlyhua發表於2020-04-07

什麼是路由?

路由其實就是URL規則,是瀏覽器裡用
來發http請求的指令,很多api的功能實際
上就是通過URL來傳送請求的。

基本 GET 路由

Route::get('/', function()
{
    return 'Hello World';
});

其他基礎路由

Route::post('foo/bar', function()
{
    return 'Hello World';
});

Route::put('foo/bar', function()
{
    //
});

Route::delete('foo/bar', function()
{
    //
});

為多種請求註冊路由

Route::match(['get', 'post'], '/', function()
{
    return 'Hello World';
});

註冊路由響應所有 HTTP 請求

Route::any('foo', function()
{
    return 'Hello World';
});

通常情況下,您將會需要為您的路由產生 URL,您可以使用 url 輔助函式來操作:

$url = url('foo');

基礎路由引數

Route::get('/hello/{id}',function($id)
{
    return "你好,$id";
});

這裡寫圖片描述

可選擇的路由引數

Route::get('/hello/{id?}',function($id=null)
{
    return "你好,$id";
});

這裡寫圖片描述

帶預設值的路由引數

Route::get('/hello/{id?}',function($id='魏刀刀')
{
    return "你好,$id";
});
" ? " 問好在正規表示式中的意思是0次或1

這裡寫圖片描述

路由過濾器
過濾器與路由的生命請求週期有很大關係,幾乎所有應用都會或多或少用到過濾器。它的主要作用就是在請求和響應發生的前後設定各種條件和任務。

Route::get('/hello/{id?}',function($id='魏刀刀')
{
    return "你好,$id";
})->before('login');



Route::filter('login',function()
{
    if(Session::get('loginUserId',0)==0){
    return "請登入到www.baidu.com";
}
});

這裡寫圖片描述

路由命名
命名路由讓你更方便於產生 URL 與重定向特定路由。您可以用 as 的陣列鍵值指定名稱給路由,即第二個引數傳陣列。

Route::get('/hello/{username?}',array('as'=>'user_home',function($name='魏刀刀')
{
    return "你好,$name";
}));


生成一條使用者連結:

Route::get('/user/detail/{id}',function($userid)
{
    return "使用者ID:$userid.<br/>使用者名稱:小明<br/>.使用者主頁:".route('user_home',array('username'=>'小明'));
});

訪問:
這裡寫圖片描述
這即是命名路由的主要用法,用route函式傳名稱,傳url ->/hello/{username?}需要的引數,然後生成url。
在瀏覽器輸入:http://localhost/helloworld/public/hello/%E5%B0%8F%E6%98%8E 即可看到:
這裡寫圖片描述

相關文章