2013-03-07 48 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