我正在尝试在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对象 - 可以帮助吗?
答案 0 :(得分:0)
好的 - 我终于放弃了尝试修复此错误并在另一台计算机上进行全新安装。我按照CakePhp.org逐字逐句概述了教程,并让它发挥作用。现在我将不得不改编我现有的所有工作。
简而言之 - 我不知道是什么破坏了我应该做些什么来修复原始问题,但是创建一个全新的安装,然后继续帮助