제목에 이미 CakePHP 2의 Acl 튜토리얼에 문제가 있다고합니다. 튜토리얼에서 언급 한 모든 방식을 정확히 수행했지만 여전히 그렇습니다 작동하지 않습니다.CakePHP 2 : Acl 튜토리얼이 작동하지 않습니다.
나는이 튜토리얼에 문제가있는 인터넷에 많은 사람들이 있다는 것을 알고있다. 그러나 나는 나 같은 문제로 블로그 항목이나 무엇이든 찾을 수 없다. 나는 다음과 같은 오류가 내 응용 프로그램의 방향에 액세스하려고 할 때 :
AclNode::node() - Couldn't find Aro node identified by "Array ([Aro0.model] => Group [Aro0.foreign_key] =>) "
그래서 모든 ACL에 전송 foreign_key에 대한 값이되지 않습니다 :
Notice (8): Undefined index: group_id [APP\Model\User.php, line 98]
하고 있습니다. 그러나 이상한 것은이 userscontroller-의 기능에 -at 적어도 그 foreign_key가 제대로 설정되어 있지만이 ACL에 전달되어야 때
Nr Query Error Affected Num. rows Took (ms)
1 SELECT COUNT(*) AS `count` FROM `cake`.`users` AS `User` WHERE `User`.`id` = 4
2 SELECT COUNT(*) AS `count` FROM `cake`.`users` AS `User` WHERE `User`.`id` = 4
3 SELECT COUNT(*) AS `count` FROM `cake`.`users` AS `User` WHERE `User`.`id` = 4
4 UPDATE `cake`.`users` SET `modified` = '2012-11-13 19:59:47' WHERE `cake`.`users`.`id` = '4'
5 SELECT `User`.`group_id` FROM `cake`.`users` AS `User` WHERE `User`.`id` = 4 LIMIT 1
6 SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`model`, `Aro`.`foreign_key`, `Aro`.`alias` FROM `cake`.`aros` AS `Aro` LEFT JOIN `cake`.`aros` AS `Aro0` ON (`Aro`.`lft` <= `Aro0`.`lft` AND `Aro`.`rght` >= `Aro0`.`rght`) WHERE `Aro0`.`model` = 'Group' AND `Aro0`.`foreign_key` = 2 ORDER BY `Aro`.`lft` DESC
7 SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`model`, `Aro`.`foreign_key`, `Aro`.`alias` FROM `cake`.`aros` AS `Aro` LEFT JOIN `cake`.`aros` AS `Aro0` ON (`Aro`.`lft` <= `Aro0`.`lft` AND `Aro`.`rght` >= `Aro0`.`rght`) WHERE `Aro0`.`model` = 'User' AND `Aro0`.`foreign_key` = 4 ORDER BY `Aro`.`lft` DESC
8 SELECT COUNT(*) AS `count` FROM `cake`.`aros` AS `Aro` WHERE `Aro`.`id` = 6
9 SELECT COUNT(*) AS `count` FROM `cake`.`aros` AS `Aro` WHERE `Aro`.`id` = 6
10 SELECT `Aro`.`parent_id` FROM `cake`.`aros` AS `Aro` WHERE `Aro`.`id` = 6 LIMIT 1
11 SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`lft`, `Aro`.`rght` FROM `cake`.`aros` AS `Aro` WHERE 1 = 1 AND `Aro`.`id` = 6 LIMIT 1
12 SELECT `Aro`.`id`, `Aro`.`lft`, `Aro`.`rght` FROM `cake`.`aros` AS `Aro` WHERE 1 = 1 AND `Aro`.`id` = 2 LIMIT 1
13 SELECT COUNT(*) AS `count` FROM `cake`.`aros` AS `Aro` WHERE `Aro`.`id` = 6
14 UPDATE `cake`.`aros` SET `parent_id` = 2, `model` = 'User', `foreign_key` = 4, `id` = 6 WHERE `cake`.`aros`.`id` = '6'
15 SELECT `Aro`.`id`, `Aro`.`parent_id`, `Aro`.`model`, `Aro`.`foreign_key`, `Aro`.`alias` FROM `cake`.`aros` AS `Aro` LEFT JOIN `cake`.`aros` AS `Aro0` ON (`Aro`.`lft` <= `Aro0`.`lft` AND `Aro`.`rght` >= `Aro0`.`rght`) WHERE `Aro0`.`model` = 'Group' AND `Aro0`.`foreign_key` IS NULL ORDER BY `Aro`.`lft` DESC
오류 메시지에서 줄
을 사라는 다음과 같습니다public function bindNode($user) {
return array('model'=>'Group','foreign_key'=>$user['User']['group_id']);
}
foreign_key의 값이 첫째로 '2'(어떻게 될까요?)이고 이후에는 NULL입니까?
여러분 중 일부는 저를 도울 수 있기를 바랍니다. 감사합니다. .
PS : 모든 사람에 대한 내 질문의 독일어 버전을 선호, here 그 것이다
UPDATE :
public function bindNode() {
$this->id;
$data = $this->read();
return array('model' => 'Group', 'foreign_key' => $data['User']['group_id']);
}
: 나는이를 통해 userscontroller의 모든 기능을 작동 할 수 있었다
다른 모든 컨트롤러의 경우에도 여전히 동일합니다 .. 다른 컨트롤러에서도 작동하도록 모델에서 사용자 데이터를 가져올 수있는 아이디어가 있습니까?