Hi,
I have two tables, drivers and cars.
Each driver in drivers has his cars in cars.
When I delete a driver, his cars should also be deleted in cars.
I defined two classes:
class Drivers extends Zend_Db_Table_Abstract
{
[...]
protected $_dependentTables = array(
'Cars'
);
}
class Cars extends Zend_Db_Table_Abstract
{
[...]
protected $_referenceMap = array(
'Pages' => array(
'columns' => array('driver_id'),
'refTableClass' => 'Drivers',
'refColumns' => 'id',
'onDelete' => self::CASCADE
)
);
}
When I run
$myTable = new Drivers();
$driversRowset = $myTable ->find(1278);
$driver = $driversRowset->current();
$driver->delete();
The row with id 1278 in my drivers table will be deleted and also all rows
in cars, where driver_id = 1278. Everything is working as expected.
Now I want to add a method to my drivers Zend_Db_Table class, which will
delete a driver and do something else:
class Drivers extends Zend_Db_Table_Abstract
{
[...]
public function doSth($id)
{
$where = $this->_db->quoteInto('id = ?', $id, Zend_Db::INT_TYPE);
$this->delete($where);
// do my other stuff
[...]
}
}
My problem is, that when I call $driverTable->doSth(1278), the row in the
driver's table will be deleted, but it won't delete any rows in cars.
Did I miss something?
--
Regards,
Thomas