Я не могу определить отношение ссылочной целостности, используя отношения таблицы Zend Frameworks, как описано в руководстве .
Я исчерпал все возможные конфигурации (как мне кажется), и теперь сталкиваюсь с перспективой разработки приложения без возможности использования каскадного удаления, что нежелательно.
Может кто-нибудь увидеть, что не так или предложить какие-либо предложения?
Мой проект настраивается с использованием нового рекомендованного метода 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');
}