2013-02-21 59 views
1

我有一個型號的用戶:CakePHP的HABTM白水產生錯誤的數據庫記錄

public $hasMany = array(
    'Contact' => array('dependent' => true)); 
public $hasAndBelongsToMany = array(
    'MySharepermission' => array(
     'unigue' => false, 
     'className' => 'Contact', 
     'joinTable' => 'sharepermissions_users', 
     )); 

和模型聯繫

public $belongsTo = array('User');  
public $hasAndBelongsToMany = array(
    'Sharepermission' => array(
     'unigue' => false, 
     'className' => 'User', 
     'joinTable' => 'sharepermissions_users', 
     ) 
    ); 

現在我有$數據數組:

array(
(int) 0 => array(
    'Contact' => array(
     'id' => '51254509-0654-468b-8007-1683550d8ff8' 
    ), 
    'Sharepermission' => array(
     'id' => '5123a3c3-d5ac-4541-b28b-326c550d8ff8', 
     'permission' => 'read' 
    ) 
), 
(int) 1 => array(
    'Contact' => array(
     'id' => '51254509-0654-468b-8007-1683550d8ff8' 
    ), 
    'Sharepermission' => array(
     'id' => '51252eba-8804-40e7-bf3d-7db9550d8ff8', 
     'permission' => 'write' 
    ) 
) 
) 

數據庫目前是空的,現在我做:

debug($this->Contact->saveAll($data)); 

結果是很奇怪: enter image description here

爲什麼會這樣呢?

+0

這很奇怪,你應該做的一件事就是改變foriegn鍵(* _id)的mysql數據類型爲CHAR(32)如果你使用UUID – Dunhamzzz 2013-02-21 15:00:18

+0

我一直使用二進制(36)作爲uuid for很長一段時間,它像一個魅力 – 2013-02-21 15:06:24

+0

公平,我只是暗示,因爲0000s不是UUID – Dunhamzzz 2013-02-21 15:11:59

回答

0

Sharepermisson模型的外觀如何?

看來你在你接觸的habtm關係有一個錯誤:

public $hasAndBelongsToMany = array(
    'MySharepermission' => array(
     'unigue' => false, 
     'className' => 'Contact', 
     'joinTable' => 'sharepermissions_cantacts', 
     )); 

您是否嘗試過只保存接觸的部分,而用戶的關係?

0

我看到unique這個詞拼錯了,它應該是「唯一」而不是「unigue」。它可能會解決這個問題。