我想测试一个对象是否在调用我的函数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
我没有找到如何使用这种方法,我认为这是我遇到的问题。
答案 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';