CakePHP ACL — ошибка при создании ACO

Я пытаюсь создать ACO вручную в CakePHP и пока не добился успеха.

Мой 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();
}

Когда я вызываю метод установки — система выдает ошибку, говорящую 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, и это также выдает ошибку при попытке запуска из оболочки — ошибка, которую я получаю, приведена ниже

Неустранимая ошибка: вызов узла-члена функции () для необъекта в /Applications/XAMPP/xamppfiles/htdocs/cakephp/app/Plugin/AclExtras/Lib/AclExtras.php в строке 217
Ошибка фатальной ошибки: вызов узла-члена функции () для необъекта в [/Applications/XAMPP/xamppfiles/htdocs/cakephp/app/Plugin/AclExtras/Lib/AclExtras.php, строка 217]

По сути, по какой-то причине он не может получить объект Aco или Acl — может ли что-нибудь помочь?

0

Решение

Хорошо — я, наконец, отказался от попытки исправить эту ошибку и сделал новую установку на другом компьютере. Я следовал за учебником, изложенным в CakePhp.org слово в слово и заставил его работать. Теперь я собираюсь переоснастить всю мою существующую работу поверх этого.

Короче говоря — я не знаю, что сломалось или что я должен сделать, чтобы исправить исходную проблему, но создание новой установки, а затем продолжение помогло

0

Другие решения

Других решений пока нет …