软删除行为蛋糕 PHP - 删除问题



我正在使用软删除 - CakeDC 实用程序包的行为。
(https://github.com/CakeDC/utils(

现在的问题是:我想检查控制器中是否有软(删除(的内容,如下所示:

<?php
  if ($this->User->delete($id)) {
    $this->Session->setFlash(__('user has been deleted'));
  } else {
    $this->Session->setFlash(__('user has not been deleted'));
  }
 ?>

不幸的是,我得到的结果是错误的。 意味着如果用户被(软(删除,我将收到"用户尚未被删除"消息,反之亦然。

我知道 Cake 如何处理此请求,并且之前的 Delete 钩子必须返回 false,以停止(硬(删除数据。 但是在 GitHub 上提到这个问题,现在应该可以解决这个问题。我是唯一一个这不起作用的人吗?

除了简单地否定条件之外,还有其他解决方法吗?(不想那样做,就是不对(

提前问候和感谢!
纳赫里

我为此使用的解决方案是从@mark链接到的线程中复制一半和一半写入的。

将其添加到您的AppModel

/**
 * Override the delete() model method so that we can account for the
 * SoftDelete behaviours return
 *
 * @param int $id
 * @param bool $cascade
 * @return bool
 */
    public function delete($id = null, $cascade = true) {
        $result = parent::delete($id, $cascade);
        if ($result === false && $this->Behaviors->enabled('SoftDelete')) {
            return $this->field('deleted', array('deleted' => 1));
        }
        return $result;
    }
请记住

,使用此代码段,它使用行为default设置。这就是为什么我使用'deleted' => 1如果您以不同的方式命名您的字段,那么您将想要更改它。

最新更新