Ich bin nicht in der Lage, referenzielle Integrität Beziehung mit Zend Frameworks Tabellenbeziehungen wie in der manual dokumentiert zu definieren.Hilfe Definieren referenzielle Integrität in Zend Framework 1.8.3 mit Data Mapper-Modell
Ich habe jede mögliche Konfiguration erschöpft (so scheint es), und jetzt bin ich mit der Aussicht konfrontiert, die Anwendung zu entwickeln, ohne kaskadierende Löschungen verwenden zu können, was unerwünscht ist.
Kann jemand sehen, was falsch ist oder irgendwelche Vorschläge anbieten?
Mein Projekt wird mit der neuen Methode ZF 1.8.3 mit Datamappern eingerichtet, und ich frage mich, ob dies ein Grund ist, warum ich das Verhalten nicht replizieren kann, wie im Referenzhandbuch beschrieben. Hat jemand Erfahrung mit diesem Problem?
Hier sind die relevanten Teile der Klassen:
application/models/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();
}
application/models/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
)
);
}
application/models /CommentMapper.php
... und die zugehörige Tabelle definiert durch die Klasse:
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');
}
Warum haben Sie einen ungenutzten zweiten Parameter Benutzer löschen()? Default_Model_Users $ users – hobodave
Das ist irgendwie dumm ... Und was ist mit Klasse Autoload? –