0

我是第一次在 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,如在其他地方读取的那样。最后,我确保文档末尾没有空格,我也将其视为问题的可能原因。

4

0 回答 0