symfony 1.4:问题方法isDeleted()

时间:2010-08-05 13:35:10

标签: symfony1 methods

我想测试一个对象是否在调用我的函数executeDelete后被删除,以便在对象仍在我的数据库中时向用户发送错误。

if ($logement->isDeleted()) {
  $this->getUser()->setFlash('notice', 'Suppression du logement effectuée');
}
else {
  $this->getUser()->setFlash('error', 'Erreur lors de la suppression du logement');
}

但我有一个错误:

Unknown method Logement::isDeleted

我没有找到如何使用这种方法,我认为这是我遇到的问题。

1 个答案:

答案 0 :(得分:1)

您可能需要向我们展示更多代码......但基本上您的方法不存在,您必须创建它。

我假设您正在使用Doctrine。假设你正在删除这样的记录:

$lodgement->delete();

delete方法是否返回一个布尔值来表示成功/失败?所以你可以简单地做到以下几点:

if ($lodgement->delete()) {
    $this->getUser()->setFlash('notice', 'success');
} else {
    $this->getUser()->setFlash('error', 'failure');
}

修改

如果您想实现isDeleted()方法,可以使用postDelete()挂钩。在您的模型类中:

class Lodgement extends BaseLodgement
{
    // add an 'isDeleted' property
    protected $isDeleted = false;

    // override the postDelete method
    public function postDelete($values)
    {
        $this->isDeleted = true;
    }

    // define your own isDeleted method
    public function isDeleted()
    {
        return $this->isDeleted;    
    }
}

然后你可以这样做:

$lodgement->delete();
echo $lodgement->isDeleted() ? 'notice' : 'error';