2

Kohana 3.2 ORM 中是否有任何用于级联删除的方法。我是 kohana 的初学者,所以任何人都可以在这件事上帮助我吗?

4

2 回答 2

2

恐怕Kohana没有。如果你真的需要一个,你应该在数据库级别应用它(ON DELETE CASCADE

于 2012-11-26T13:34:23.043 回答
1

要级联删除,请覆盖delete()模型中的方法:

class Model_Alpha extends ORM
{
  protected $_has_many = array(
    'beta' => array(
      'model' => 'beta',
      'foreign_key' => 'alpha_id',
    ),
    'gamma' => array(
      'model' => 'gamma',
      'foreign_key' => 'alpha_id',
    ),
  );

  function delete()
  {
    foreach($this->beta->find_all() as $entry)
      $entry->delete();
    foreach($this->gamma->find_all() as $entry)
      $entry->delete();
    parent::delete();
  }
}

delete()然后,您可以通过覆盖要删除的模型上的方法来进一步级联。

于 2012-12-15T05:16:46.543 回答