2009-07-22 31 views
0

現在可以概述我的問題得到Zend Framework提供DRI層。Zend框架 - 使用表數據映射器模式的級聯刪除

使用下面的類定義我可以通過我的本地UserController「public/users/delete/userId/22」刪除用戶,但不能刪除相關評論,即使我已經設置了引用映射和表關係定義。

有沒有人有任何答案,當我刪除用戶記錄時,相關的評論記錄不會被刪除?

class Default_Model_DbTable_Comment extends Zend_Db_Table_Abstract 
    { 
     /** 
     * @var string Name of the database table 
     */ 
     protected $_name = 'comment'; 

     /** 
     * @desc reference map 
     * 
     * Rows in the comment table are to be automatically deleted if the row in the 
    * User table to which they refer is deleted 
    *  
    */ 
    protected $_referenceMap = array(
     'User' => array(
      'columns'  => 'user_id', // the foreign key(s) 
      'refTableClass' => 'Default_Model_DbTable_Users', 
      'refColumns' => 'id', 
      'onDelete'  => self::CASCADE, 
     ) 
    ); 

} 
class Default_Model_DbTable_Users extends Zend_Db_Table_Abstract 
{ 
    /** 
    * @var string Name of the database table 
    */ 
    protected $_name = 'users'; 


    /** 
    * @desc Defining referential integrity here since we are using MyISAM 
    * Dependent tables are referred via the class name. 
    */ 
    protected $_dependentTables = 'Default_Model_DbTable_Comment'; 



} 

回答

0

我創建的模型和你並測試它是否出現取決於表中的數組中列出,它僅適用:

class Default_Model_DbTable_Users extends Zend_Db_Table_Abstract 
{ 
    /** 
    * @var string Name of the database table 
    */ 
    protected $_name = 'users'; 


    /** 
    * @desc Defining referential integrity here since we are using MyISAM 
    * Dependent tables are referred via the class name. 
    */ 
    protected $_dependentTables = array('Default_Model_DbTable_Comment'); 



} 

當他們在數組中未列出,我得到錯誤

警告:提供給foreach()的無效參數在C:\ PHP \ includes \ ZendFramework-1.8.4-minimal \ library \ Zend \ Db \ Table \ Row \ Abstract.php on line 632

您的環境中可能不會顯示此錯誤。

+0

你如何得到這樣的錯誤..因爲我沒有找到Zend堆棧跟蹤錯誤非常有用? – 2009-07-22 15:58:55