CakePHP ACL - 创建ACO时出错

时间:2014-10-03 01:36:49

标签: php cakephp cakephp-2.0

我正在尝试在CakePHP中手动创建ACO,到目前为止还没有成功。

我的AppController.php有初始化的后续代码 -

public $components = array(
    'Acl',
    'Session',
    'Auth' => array(
        'loginRedirect' => array(
                'controller' => 'jobs',
                'action' => 'search'
        ),
        'logoutRedirect' => array(
                'controller' => 'users',
                'action' => 'login',
                'home'
        ),
        'authenticate' => array(
                'Form' => array(
                    'passwordHasher' => 'Blowfish'
                )
        ),
        'authorize' => array(
                'Actions' => array('actionPath' => 'controllers')
            )
        ),
    'DebugKit.Toolbar'
);

我的UsersController有install方法,看起来像这样

public function install() {
    $this->Acl->Aco->create(array('parent_id' => null, 'alias' => 'controllers'));
    $this->Acl->Aco->save();
}

当我调用install方法时 - 系统抛出一个错误trying to invoke method create on a non-object - 但我认为这正是CakePHP文档要求我们做的 - 我错过了什么?

更新: 我破解了上一个问题,基本上直接进入我的模型并在那里创建了一个创建ACO的方法 - 基本上在我的组模型中我放了下面的代码,然后通过控制器动作调用它。这有助于创建ACO

public function install() {
    $aco = new Aco();
    $aco->create(array('parent_id' => NULL, 'alias' => 'controllers'));
    $aco->create(array('parent_id' => 1, 'alias' => 'users'));
    $aco->create(array('parent_id' => 1, 'alias' => 'jobs'));
    $aco->save();
}

但是现在我有下一个在ACO和ARO之间创建关联的问题 - 我也尝试下载AclExtras实用程序,并且在尝试从shell运行时也出错 - 我得到的错误在

之下

致命错误:在第217行的/Applications/XAMPP/xamppfiles/htdocs/cakephp/app/Plugin/AclExtras/Lib/AclExtras.php中调用非对象上的成员函数node() 致命错误错误:在[/Applications/XAMPP/xamppfiles/htdocs/cakephp/app/Plugin/AclExtras/Lib/AclExtras.php,第217行]中调用非对象上的成员函数node()

从根本上说,由于某些原因它无法获得Aco或Acl对象 - 可以帮助吗?

1 个答案:

答案 0 :(得分:0)

好的 - 我终于放弃了尝试修复此错误并在另一台计算机上进行全新安装。我按照CakePhp.org逐字逐句概述了教程,并让它发挥作用。现在我将不得不改编我现有的所有工作。

简而言之 - 我不知道是什么破坏了我应该做些什么来修复原始问题,但是创建一个全新的安装,然后继续帮助