【干货】一篇文章学会Laravel框架所有路由知识

24 篇文章 0 订阅
2 篇文章 0 订阅

本节内容主要讲解Laravel框架的路由详解,主要讲解路由的定义,参数,规则,访问控制器等操作。

一、常用路由动作

语法

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');

白名单数组匹配match组合

Route::match(['get', 'post'], '/', function () { 

    return view('welcome'); 

}); 

Route::match(['get', 'post'],'/', 'WelcomeController@index');

重定向路由

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]+']);

三、路由别名(以user.profile进行访问)

Route::get('user/{id?}', function ($id = 1) { 

    return "用户ID: " . $id; 

})->name('user.profile'); 

// 访问方式: 

<a href="{{ route('user.profile', ['id' => 100]) }}">
四、路由分组
Route::group([], function () { 

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

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

});
五、路由分组、中间件(2中方式-一般使用第二种)
Route::middleware('auth:api')->group(function () { 

    Route::get('dashboard', function () { 

        return view('dashboard'); 
    }); 

        Route::get('account', function () { 

            return view('account'); 

        }); 

});
或者
Route::group(['middleware' => 'auth:api'], function () { 

    Route::get('dashboard', function () { 

        return view('dashboard'); 

    }); 


    Route::get('account', function () { 

        return view('account'); 

    }); 

});

六、路由路径前缀

Route::prefix('api')->group(function () { 

    Route::get('/', function () { 
        // 处理 /api 路由 
    })->name('api.index'); 

    Route::get('users', function () { 
        // 处理 /api/users 路由 

    })->name('api.users'); 

});

七、路由子域名

Route::domain('{account}.blog.test')->group(function (){ 

    Route::get('/', function ($account) { 

        //TODO 

    }); 

    Route::get('user/{id}', function ($account, $id) { 

        //TODO 
    
    }); 

});

八、路由命名空间

Route::namespace('Admin')->group(function() { 

    // App\Http\Controllers\Admin\AdminController 
    Route::get('/admin', 'AdminController@index'); 

});

路由命名空间、前缀、分组、参数、别名组合

// 路由命名+路径前缀 
Route::name('user.')->prefix('user')->group(function () { 

    Route::get('{id?}', function ($id = 1) { 
        // 处理 /user/{id} 路由,路由命名为 user.show 

    return route('user.show'); })->name('show'); 

    Route::get('posts', function () { 
        // 处理 /user/posts 路由,路由命名为 user.posts 

    })->name('posts'); 

});

九、访问当前路由

$route = Route::current(); 

$name = Route::currentRouteName(); 

$action = Route::currentRouteAction();

十、清除路由缓存

php artisan route:cache

十一、删除路由缓存

php artisan route:clear

通过以上的学习总结,我们已经学会了Laravel的路由定义、访问方式,而且路由非常的方便,对于新手来说,学习起来非常的方便,也非常容易学会。

更多内容请关注公众号Laravel技术社区),带你走进干货的世界。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laravel技术社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值