我無法使用Zend框架表關係定義參照完整性關係,如manual中所述。幫助使用數據映射器模型在Zend Framework 1.8.3中定義參照完整性
我已經耗盡了所有可能的配置(所以它似乎),現在面臨開發應用程序而不能使用級聯刪除的前景,這是不可取的。
任何人都可以看到什麼是錯的或提供任何建議嗎?
我的項目是使用新的ZF 1.8.3建議的方法與datamappers建立的,我想知道這是否是我無法複製參考指南中描述的行爲的原因。有沒有人有任何這個問題的經驗?
下面是類的相關部分:
應用程序/模型/ UsersMapper.php
class Default_Model_UsersMapper {
public function deleteUser($id, Default_Model_Users $users){
$usersTable = new Default_Model_DbTable_Users();
$usersRowset = $usersTable->find($id);
$userToDelete = $usersRowset->current();
$userToDelete->delete();
}
應用程序/模型/ DBTABLE/Users.php
class Default_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
/**
* @var string Name of the database table
*/
protected $_name = 'users';
/**
* @desc reference map
*
*/
protected $_referenceMap = array(
'Comment' => array(
'columns' => array('user_id'),
'refTableClass' => 'Comment',
'refColumns' => array('id'),
'onDelete' => self::CASCADE
)
);
}
應用程序/模型/CommentMapper.php
...以及由類定義的相關表:
Comment.php
class Default_Model_DbTable_Comment extends Zend_Db_Table_Abstract
{
/**
* @var string Name of the database table
*/
protected $_name = 'comment';
/**
* @desc Defining referential integrity here since we are using MyISAM
* Dependent tables are referred via the class name.
*/
protected $_dependentTables = array('Users');
}
爲什麼你有一個未使用的第二個參數deleteUser()? Default_Model_Users $ users – hobodave 2009-07-21 22:43:46