【发布时间】:2012-11-10 22:44:30
【问题描述】:
Kohana 3.2 ORM 中是否有任何用于级联删除的方法。我是 kohana 的初学者,所以任何人都可以在这件事上帮助我吗?
【问题讨论】:
标签: kohana kohana-orm kohana-3.2
Kohana 3.2 ORM 中是否有任何用于级联删除的方法。我是 kohana 的初学者,所以任何人都可以在这件事上帮助我吗?
【问题讨论】:
标签: kohana kohana-orm kohana-3.2
恐怕Kohana没有。如果你真的需要,你应该在数据库级别应用它(ON DELETE CASCADE)
【讨论】:
要级联删除,请覆盖模型中的 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() 方法来进一步级联。
【讨论】: