В настоящее время у меня установлены компоненты ACL Auth & в приложении CakePHP. У меня есть Group
& User
модель, настроенная как инициатор. Все это сработало нормально, таблица aros
обновлялась должным образом всякий раз, когда была добавлена новая группа. Например, это было бы мое содержание aros
таблицы:Модельное поле в таблице AROs, не префиксное имя плагина
+----+-----------+-------+-------------+-------+------+------+
| id | parent_id | model | foreign_key | alias | lft | rght |
+----+-----------+-------+-------------+-------+------+------+
| 1 | NULL | Group | 1 | NULL | 1 | 2 |
| 2 | NULL | Group | 2 | NULL | 3 | 4 |
| 3 | NULL | Group | 3 | NULL | 5 | 6 |
+----+-----------+-------+-------------+-------+------+------+
С тех пор я переработан вне User
и Group
модели в свой собственный плагин под названием «Обзор» (наряду с другими моделями, контроллеров, компонентов и т.д. .).
я сразу получил эту ошибку:
AclNode::node() - Couldn't find Aro node identified by "Array ([Aro0.model] => Group [Aro0.foreign_key] => 1) "
Я обновил метод User::bindNode()
включить префикс «Survey» на модели:
class User extends SurveyAppModel
{
// ...
public function bindNode($user)
{
return array('model' => 'Survey.Group', 'foreign_key' => $user['Survey.User']['group_id']);
}
//...
}
Я также изменил поле «модель» в таблица aros
должна быть «Survey.Group» вместо «Group».
Это устранило ошибку, и моя авторизация и аутентификация снова работали. Моя проблема теперь возникает, когда я сохраняю новую запись в модели Group, поле модели в таблице aros
имеет значение «Группа», а не «Survey.Group», поэтому я получаю ту же ошибку, что и раньше.
Так что мне интересно, как я могу это получить, чтобы при сохранении новой записи в модели группы она автоматически добавляет имя префикса плагина в поле «model»?