我正在CakePHP中第一次开发,这个屏幕让我很头疼。我不知道如何调试它,所以我在这里要求一些帮助。到目前为止,我的应用程序在本地运行良好,但在远程部署时,其中一个控制器只显示白屏。那将是我命名为DummyController的那个。
运行一些测试我注意到如果我在beforeFilter动作中放置一行,就会发生这种情况,但我很难理解为什么。
这是我的AppController
class AppController extends Controller {
public $components = array(
'DebugKit.Toolbar',
'Session',
"Email",
"Auth" => array(
'loginRedirect' => array ('controller'=>'home', 'action'=>'demo'),
'logoutRedirect' => array ('controller'=>'home', 'action'=>'index'),
'authError' => "You don't have access to that page.",
'authorize' => array("Controller")
)
);
public $helpers=array("Html","Form","Session");
public function isAuthorized($user) {
return true;
}
public function beforeFilter() {
$this->Auth->allow ('view');
$this->set('logged_in', $this->Auth->loggedIn());
$this->set('current_user', $this->Auth->user());
}
}
这是我的DummyController
App::import('Lib', 'TextFactory');
class DummyController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
}
public function isAuthorized($user) {
if ($user["role"] == "administrator") {
return true;
}
return false;
}
public function index() {
$this->set('posts', $this->Post->find('all'));
}
}
如果我添加此行:$ this-> Auth-> deny('index');控制器正确加载未经身份验证的用户。但我需要限制它。
我还检查了控制器的编码为UTF而没有BOM在其他地方读取。最后,我确保文档末尾没有空格,我也认为这可能是导致问题的原因。