コハナ3.2ORMにカスケード削除の方法はありますか?私はコハナの初心者なので、誰かがこの問題で私を助けることができますか?
質問する
1289 次
2 に答える
2
コハナにはないのではないかと思います。本当に必要な場合は、データベースレベルで適用する必要があります(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 に答える