2013-03-07 67 views
0

蛋糕查询:CakePHP的没有看到多个关系HABTM而SQL查询工作正常

$this->Token->find("first", array(
    "conditions" => array(
      "Token.token" => $token), 
    "contain" => array( 
      "TokenGroup" => array(
          "TokenPermission" => array("fields" => array("path")) 
)))); 

收益(部分)是这样的:

[TokenGroup] => Array 
    (
     [id] => 1 
     [name] => admin 
     [modified] => 2013-03-07 00:00:00 
     [created] => 2013-03-07 00:00:00 
     [TokenPermission] => Array 
      (
      ) 

    ) 

TokenPermition数组是空的,但是当我使用SQL:

SELECT 
    TokenPermission.path 
FROM 
    tokens AS Token 
INNER JOIN 
    token_groups AS TokenGroup ON (Token.token_group_id = TokenGroup.id) 
INNER JOIN 
    token_groups_token_permissions AS JoinTable ON (TokenGroup.id = JoinTable.token_group_id) 
INNER JOIN 
    token_permissions AS TokenPermission ON (TokenPermission.id = JoinTable.token_permission_id); 
WHERE 
    Token.token = $token 

它返回我TokenPermission数据:

[TokenPermission] => Array 
     (
      [path] => TOKEN_NUMBER 
    ) 

此外,当我问并列为不同的用户组的权限,可以returnes分配组号1许可 - 这是不是用户,但管理员!

那么,为什么Cake没有看到正确的关系,如果SQL返回一切正常?

回答

0

如果查看Cake运行的查询,可以找到答案。将代码放在查找方法后:

$this->Token->->getDataSource()->getLog(false, false); 
+0

它不适用于我。有了这个代码或没有,结果是一样的。这并不意味着结果总是空的。它返回给我一些东西,但是例如权限指向管理员,而他们应该与普通用户相关。 – Ziemo 2013-03-08 09:13:11