2012-04-16 100 views
0

嗨,我正在使用zend框架,我有删除级联的问题。Zend Framework删除级联

我有两个在Zend的分贝表称为用户和其他二(因为我有2 TIPE用户)连接到用户

用户是

class Application_Model_DbTable_User extends Zend_Db_Table_Abstract 
{ 
protected $_name = 'user'; 
protected $_primary = 'username';  
protected $_dependentTables = array('Cliente','Trainer'); 
} 

一个其他的实体是

class Application_Model_DbTable_Trainer extends Zend_Db_Table_Abstract{ 
protected $_name = 'trainer'; 
protected $_primary = 'idusername'; 

protected $_referenceMap = array(
    'Utente' => array(
     'columns' => array('idusername'), 
     'refTableClass' => 'user', 
     'refColumns' => array('username'), 
     'onDelete' => self::CASCADE 
    ) 
); 

protected $_dependentTables = array('Trainermaster','Presenza','Uscita');} 

当我在用户的对象上使用删除选项时,Zend只删除User表中的用户而不是Trainer表中的用户...

我已经在mysql数据库中设置了删除级联,以便更安全但是不起作用。

回答

0

$ _dependentTables必须指向你的类名,而不是你的数据库表名:

protected $_dependentTables = array('Application_Model_DbTable_Cliente', 
            'Application_Model_DbTable_Trainer'); 
+0

另一个错误是“refTableClass” =>“用户”,其中我应该写Application_Model_DbTable_User但它不会再工作...如果我使用 - >删除($ where)zend系统只在用户表中删除...如果我使用 - > _ cascadeDelite什么也不应... – Simone 2012-04-16 19:46:45

+0

您使用的是什么RDBMS? – Liyali 2012-04-17 08:42:32

+0

我使用的是最新版本的mysql ...我在Zend_Db_Table中使用myisiam表和这个约束表。现在我试图在zend中删除所有依赖表,并使用InnoDb表...我希望这会起作用。 – Simone 2012-04-17 09:51:31