我是第一次在 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());
}
}
这是我的虚拟控制器
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'); 控制器为未经身份验证的用户正确加载。但我需要限制它。
我还检查了控制器的编码是否为没有 BOM 的 UTF,如在其他地方读取的那样。最后,我确保文档末尾没有空格,我也将其视为问题的可能原因。