源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

跟我学Laravel之路由

  • 时间:2021-03-31 00:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:跟我学Laravel之路由
[b]基本路由[/b] 应用中的大多数路都会定义在 app/routes.php 文件中。最简单的Laravel路由由URI和闭包回调函数组成。 基本 GET 路由
[url=http://www.1sucai.cn/admin/fckeditor/editor/:to]URL::to[/url]方法就可以满足此需求: $url = [url=http://www.1sucai.cn/admin/fckeditor/editor/:to(]URL::to('foo'[/url]); [b]路由参数[/b]
[url=]'UserController@showProfile'[/url]));
为路由绑定多个过滤器
[url=]'UserController@showProfile'[/url]));
现在,你可以使用路由名称来创建URL和重定向:
[url=http://www.1sucai.cn/admin/fckeditor/editor/:route(]URL::route('profile'[/url]); $redirect = Redirect::route('profile');
可以使用currentRouteName方法来获取当前运行的路由名称:
[u]复制代码[/u] 代码如下:
$name = Route::currentRouteName();
路由组 有时你可能需要为一组路由应用过滤器。使用路由组就可以避免单独为每个路由指定过滤器了:
[u]复制代码[/u] 代码如下:
Route::group(array('before' => 'auth'), function() {     Route::get('/', function()     {         // Has Auth Filter     });     Route::get('user/profile', function()     {         // Has Auth Filter     }); });
[b]子域名路由[/b] Laravel中的路由功能还支持通配符子域名,你可以在域名中指定通配符参数: 注册子域名路由
[u]复制代码[/u] 代码如下:
Route::group(array('domain' => '{account}.myapp.com'), function() {     Route::get('user/{id}', function($account, $id)     {         //     }); });
[b]路由前缀[/b] 可以通过prefix属性为组路由设置前缀: 为路由组设置前缀
[u]复制代码[/u] 代码如下:
Route::group(array('prefix' => 'admin'), function() {     Route::get('user', function()     {         //     }); });
[b]路由与模型绑定[/b] 模型绑定,为在路由中注入模型实例提供了便捷的途径。例如,你可以向路由中注入匹配用户ID的整个模型实例,而不是仅仅注入用户ID。首先,使用 Route::model 方法指定要被注入的模型: 将参一个模型 Route::model('user', 'User'); 然后,定义一个包含{user}参数的路由:
[u]复制代码[/u] 代码如下:
Route::get('profile/{user}', function(User $user) {     // });
由于我们已将{user}参数绑定到了User模型,因此可以向路由中注入一个User实例。例如,对profile/1的访问将会把ID为1的User实例注入到路由中。 注意: 如果在数据库中无法匹配到对应的模型实例,404错误将被抛出。 如果你希望自定义"not found"行为,可以通过传递一个闭包函数作为 model 方法的第三个参数:
[u]复制代码[/u] 代码如下:
Route::model('user', 'User', function() {     throw new NotFoundException; });
如果你想自己实现路由参数的解析,只需使用Route::bind方法即可:
[u]复制代码[/u] 代码如下:
Route::bind('user', function($value, $route) {     return User::where('name', $value)->first(); });
[b]抛出 404 错误[/b] 有两种从路由中手动触发404错误的方法。首先,你可以使用App::abort方法:
[u]复制代码[/u] 代码如下:
App::abort(404);
其次,你可以抛出Symfony\Component\HttpKernel\Exception\NotFoundHttpException异常。 更多关于处理404异常以及错误发生时自定义response的信息可以查看错误文档。 [b]控制器路由[/b] Laravel不光提供了利用闭包函数处理路由的功能,还可以路由到控制器,甚至支持创建 resource controllers。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部