我有一些航线/模型绑定设置。 其中约有10条用于各种IDS。 没有什么特别的事情:
$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个工作,这只是这两个根本不会触发。
人有一个想法?
更新:所以实际上它似乎没有我的路线将回声出生产。 我“假设”其他的人工作,因为他们工作正常。 我也尝试过编辑src/Illuminate/Routing/Router.php bind()
函数来呼应的东西,但不能看到它呼应生产(不当地)。
必须有我的箱子生产某种类/文件缓存的。 不知道这是Laravel问题或与我DigitialOcean箱的东西。
这可能是由于Laravels预编译。
该框架预编译被上基本上每个请求使用的特定的类。 这提供的性能优化的目的。 编译的文件可以在指定config/compile.php
下files
。 在默认的一个看起来是这样的:
'files' => [
realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'),
],
当运行php artisan optimize
未启用调试时(或与--force
选项)所列出的那些文件和其他框架类将被写入到storage/framework/compiled.php
。 (在Laravel 5.0.16的路径已被更改为vendor/compiled.php
)
尝试运行php artisan clear-compiled
或php artisan optimize
和您的“新” RouteServiceProvider
应该被使用。
背景资料
php artisan optimize
被称为每次运行时间composer update
composer install
(和composer create-project
),因为它被注册为后脚本:
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
尝试把绑定区间定义路线之前。
$router->bind('active_notification_id', function ($id)
{
echo 'here'; echo $id; exit;
// code
});
$router->get('/notifications/{active_notification_id}/open', 'NotificationsController@open');