【问题标题】:Kohana ORM cascade deleteKohana ORM cascade delete
【发布时间】:2012-11-10 22:44:30
【问题描述】:

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

【问题讨论】:

    标签: kohana kohana-orm kohana-3.2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      要级联删除,请覆盖模型中的 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() 方法来进一步级联。

      【讨论】:

        猜你喜欢
        • 2015-12-31
        • 1970-01-01
        • 2012-12-11
        • 2011-10-23
        • 2012-02-09
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多