-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You should probably take a look at Foreign Keys and Cascading in your
database's manual.
...................................
:  ___   _   ___ ___ ___ _ ___    :
: |   \ /_\ / __| _ \ _ (_)   \   :
: | |) / _ \\__ \  _/   / | |) |  :
: |___/_/:\_\___/_| |_|_\_|___/   :
:........:........................:
: Web    : http://www.dasprids.de :
: E-mail : m...@dasprids.de       :
: Jabber : jab...@dasprids.de     :
: ICQ    : 105677955              :
:........:........................:


Thomas D. schrieb:
> 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?
> 
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkpKI5cACgkQ0HfT5Ws789B2ogCgiElFfBypyBWKPD3l5v4dqa1k
wkkAoIe7o8TUAhNCBFXRdgrV1T4ZUmUN
=mSbg
-----END PGP SIGNATURE-----

Reply via email to