Laravel auth过滤器无法在一台服务器上运行

时间:2015-03-23 21:19:31

标签: laravel-4

我有一个奇怪的情况,我的生产过滤器在我的预生产服务器上被忽略,但在现场和本地宅基地机器上却没有。

要调试我已将我的两个文件完全缩减为绝对最小值

我不那么壮观 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";

1 个答案:

答案 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();
}

我将环境重命名为预生产以解决问题。