![](/img/trans.png)
[英]cakephp reloading acl/acos/aros after creating a new method in a controller
[英]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.