2012-11-22 2 views
2

Есть ли какой-либо метод в Kohana 3.2 ORM для каскада delete.I я новичок в kohana, поэтому любой может мне помочь в этом вопросе?Kohana ORM cascade delete

ответ

2

Боюсь, что в Кохане нет. Если вам действительно нужно, вы должны применять его на уровне базы данных (ON DELETE CASCADE)

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() на моделях, которые вы удаляете.