を使用してZend Framework 1.8.3で参照整合性を定義するヘルプmanualに記載されているZend Frameworksテーブル関係を使用して参照整合性関係を定義することはできません。Data Mapperモデル
私は可能な限りすべての設定を使い果たしてしまったので、望ましくないカスケード削除を使用できないアプリケーションの開発に直面しています。
何が間違っているのか誰かにご意見をお聞かせください。
私のプロジェクトは、新しいZF 1.8.3推奨の方法とデータマッパーを使用してセットアップされています。これがリファレンスガイドに記載されているように動作を再現できない理由ではないかと思います。誰にもこの問題の経験はありますか?
アプリケーション/モデル/ 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
これは愚かなものです...そして、クラスの自動ロードはどうですか? –