Есть ли какой-нибудь метод в Kohana 3.2 ORM для каскадного удаления. Я новичок в Kohana, поэтому кто-нибудь может мне помочь в этом вопросе?
Каскадное удаление Kohana ORM
Ответы (2)
Боюсь, в Кохане его нет. Если он вам действительно нужен, вы должны применить его на уровне базы данных (НА КАСКАД УДАЛЕНИЯ)
person
matino
schedule
26.11.2012
Для каскадного удаления переопределите метод 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()
для моделей, которые вы удаляете.
person
EricMakesStuff
schedule
15.12.2012