我有一个奇怪的情况,我的生产过滤器在我的预生产服务器上被忽略,但在现场和本地宅基地机器上却没有。
要调试我已将我的两个文件完全缩减为绝对最小值
我不那么壮观 routes.php
Route::get("/foo",['before'=>'foo',function(){return 'bar';}]);
在我的 filters.php 中发生伏都教
//die('if I uncomment this, causes the app to end here both live and local');
Route::filter("foo",function($a,$b,$c){die("this is ignored on live but not on local");});
转到/foo
显示栏,我预计会应用过滤器并停止显示
我对这个问题的原因感到很困惑,基本上现在任何人都可以访问所有页面,即使没有登录。
我应该从这里查看什么?
我尝试了什么
php artisan cache:clear
php artisan dump-autoload
php artisan clear-compiled
grep --include=\*.php -rnw . -e "filters.php"
返回./app/start/global.php:97:require app_path() . "/filters.php";
答案 0 :(得分:0)
不幸的是,我的预生产服务器的环境设置为testing
Laravel对名为testing的环境进行了环境检查 https://github.com/laravel/framework/blob/4.2/src/Illuminate/Routing/RoutingServiceProvider.php#L32
if ($app['env'] == 'testing')
{
$router->disableFilters();
}
我将环境重命名为预生产以解决问题。