繁体   English   中英

CakePHP ACL-创建ACO时出错

[英]CakePHP ACL - error while creating ACOs

我正在尝试在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对象-可以提供帮助吗?

好的-我终于放弃尝试解决此错误,并在另一台计算机上进行了全新安装。 我按照CakePhp.org上逐字逐句地介绍的教程进行了工作。 现在,我将不得不在此基础上对我现有的所有工作进行翻新。

简而言之-我不知道什么地方坏了或者应该怎么做才能解决原始问题,但是创建一个全新的安装然后继续进行帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM