【发布时间】:2015-03-08 09:38:46
【问题描述】:
我有一些路由/模型绑定设置。其中大约十个用于各种 ID。没什么特别的:
$router->get('/notifications/{active_notification_id}/open', 'NotificationsController@open');
$router->bind('active_notification_id', function ($id)
{
echo 'here'; echo $id; exit;
// code
});
绑定根本没有触发。在其他八个中工作正常,但对于其中两个来说,它只是不触发。它直接进入带有空模型的控制器,这比我的代码崩溃。
更疯狂的是,它们都可以在我的本地机器上正常工作(Windows),但只有在服务器(Ubuntu)上存在这个问题。我的 php 版本只有一个次要版本。但是其中 8 个绑定有效,只是这两个根本不会触发。
有人有想法吗?
- 请注意,我的 Laravel 和软件包版本在两端是相同的。
更新:所以实际上我的路线似乎都不会在生产中回响。我“假设”其他人正在工作,因为他们工作正常。我还尝试编辑 src/Illuminate/Routing/Router.php bind() 函数以回显某些内容,但在生产中看不到它的回显(在本地执行)。
我的生产机器上必须有某种类/文件缓存。不确定这是 Laravel 问题还是我的 DigitialOcean 盒子的问题。
【问题讨论】:
-
Ubuntu 是区分大小写的系统,所以如果调用类例如:
MyExampleClass而文件应该有名称MyExampleClass.php,你会得到什么错误? -
这就是我没有收到任何与语法等相关的错误。当我在控制器中打印出模型时,它只是一个空模型。所以一切都在“工作”,但路由/模型绑定没有触发。
-
是否有可能需要重置这些绑定的某种缓存?
-
你可以试试
php artisan route:clear清除路由缓存 -
您找到解决方案了吗?
标签: php laravel routes laravel-5