2009-02-03 4 views
-2

Чтение в нижней части документации, а именно:Удаление запросов в MySql

«Вы все еще можете получить свойства удаленных объектов, но вы не можете сохранить удаленные объекты».

Как? Это только если вы включили настройку?

ответ

0

Я не очень хорошо знаком с точной работой Propel. Но важно понимать разницу между базой данных (MySQL) и уровнем ORM (Propel). Propel - это абстракция, представляющая строки из базы данных путем их обертывания в объекты. Затем вы можете изменить или удалить такие строки, вызвав метод на соответствующем объекте, и Propel будет генерировать и выполнять требуемую инструкцию SQL.

Итак, после выполнения инструкции SQL DELETE обертка объекта по-прежнему будет содержать данные, которые были загружены до удаления строки. Но он больше не позволит вам изменять данные строки, потому что нет места, в котором Propel мог бы записать эти изменения.

+0

ahhh ... поэтому объект удаляется только в базе данных .... но остается в ORM ... имеет смысл. спасибо, Andrew (и спасибо всем) – Andrew

0

Удаленный объект просто удаляется в базе данных и помечен как удаляемый. Вы все равно можете получить доступ к нему в php, например, чтобы отобразить некоторые прощай данные пользователю («Продукт XYZ был удален»).

0

Я думаю, что «объект» относится к объекту, который уже был загружен в память. Он говорит, что вы все равно можете посмотреть на его атрибуты, но если вы попытаетесь вызвать save, он попытается выполнить инструкцию UPDATE SQL, которая завершится неудачно, потому что запись действительно была удалена.

Смежные вопросы