gpt4 book ai didi

php - 拉拉维尔 4 : Create a default route

转载 作者:行者123 更新时间:2023-12-02 03:49:45 26 4
gpt4 key购买 nike

我正在尝试在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com