1

http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-managed-application/simple-acl-managed-application.html <--- このチュートリアルをて、何を推測しますか? ;) それは動作しません、私は CakePHP 2.2.2 を使用しています... 次のエラーが発生します

未定義のインデックス: id [CORE/Cake/Model/AclNode.php、140 行目]

AclNode::node() - "Array ( [Aro0.model] => User [Aro0.foreign_key] => ) " エラー: 内部エラーが発生しました。

このエラーは、User モデルで group_id を取得していないためです

public function bindNode($user) {
            return array('model' => 'Groups', 'foreign_key' => $user['Users']['groups_id']);
        }

したがって、この関数では、 $user var にはユーザー名とパスワードのみが含まれます...そして group_id は含まれません

みんなを助けてください...

4

2 に答える 2

1

モデル名は単数形でなければなりません。

'model' => 'Group'
$user['Users']['group_id'] //in your DB, put "group_id" to, not "groups_id"

作成したモデルが「グループ」であることを確認してください。:)

于 2012-09-10T15:23:10.540 に答える
0

私はちょうどこの問題に遭遇しました。コードをさかのぼって問題を追跡すると、私のモデルはデフォルトの「User」ではなく「AdminUser」と呼ばれていました。userModel 設定を変更すると解決しました。

public $components = array(
    'Acl', 
    'Auth' => array(
        'authorize' => array(
            'Actions' => array(
                'actionPath' => 'controllers',
                'userModel' => 'AdminUser'
            )
        )
    ), 
    'Session'
);

bindNode メソッドを見ると、「User」ではなく「Users」という名前のモデルを使用しているように見えるため、userModel を「Users」に設定するとうまくいく場合があります。

それが役に立てば幸いです、
ピート

于 2012-09-13T20:58:57.797 に答える