Symfony 1.4: проблемный метод isDeleted () - PullRequest
0 голосов
/ 05 августа 2010

Я хочу проверить, удален ли объект после вызова моей функции 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 Ответ

1 голос
/ 05 августа 2010

Возможно, вам придется показать нам больше кода ... Но в основном ваш метод не существует, и вам придется его создать.

Я предполагаю, что вы используете Doctrine.Предполагая, что вы удаляете запись следующим образом:

$lodgement->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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...