現在、CakePHP アプリで Auth & ACL コンポーネントをセットアップしています。リクエスタとして機能するように、モデルとモデルの両方をセットアップしていますGroup
。User
これは最初はすべて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
モデルを「Survey」と呼ばれる独自のプラグインにリファクタリングしました(他のモデル、コントローラー、コンポーネントなどとともに)。
私はすぐにこのエラーを受け取りました:
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
また、テーブルの「モデル」フィールドを「グループ」ではなく「調査.グループ」に変更しました。
これによりエラーが解消され、承認と認証が再び機能するようになりました。新しいレコードを Group モデルに保存すると、テーブルのモデル フィールドがaros
「Survey.Group」ではなく「Group」に設定されているため、以前と同じエラーが発生します。
新しいレコードを Group モデルに保存すると、プラグインのプレフィックス名が「モデル」フィールドに自動的に追加されるようにするにはどうすればよいのでしょうか?