- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Laravel 4 REST API 中创建一个默认路由,当我的其他定义的路由都没有与请求匹配时,该路由就会向调用者返回特定错误。
这可能吗?不幸的是,我在文档中找不到任何内容,因此我尝试使用通配符(*
)作为我的routes.php
中的最后一个路由定义,但这并没有工作。
Route::when("*", function(){
throw new CustomizedException('Route not found...');
});
当我有这条路线并执行 artisan 路线
时,我得到一个异常:{"error":{"type":"ErrorException","message":"类闭包的对象无法转换为字符串","file":"\/Applications\/MAMP\/htdocs\/CampaigningTools\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Console\/RoutesCommand.php","line":153}}
调用不存在的路由不会触发我的自定义异常,而是标准异常:{"error":{"type":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException","message":"","file":"\/Applications\/MAMP\/htdocs\/CampaigningTools\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php","line":1429}}
我还尝试按照建议使用 any
in this post ,但这也行不通:
Route::any( '(.*)', function( $page ){
throw new ValidationException('Custom error');
});
当我调用不存在的路由时,该路由也不会触发。
任何提示,我做错了什么,我们将不胜感激。
最佳答案
我花了一段时间才弄清楚这一点,实际上@devo非常接近:
Route::get('{slug}', function($slug) {
// check your DB for $slug, get the page, etc...
})->where('slug', '^.*');
这也会捕获/。如果您想单独处理主页,请将正则表达式更改为:where('slug', '^.+');
关于php - 拉拉维尔 4 : Create a default route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942646/
我是一名优秀的程序员,十分优秀!