Как обновить набор данных с помощью объекта доктрины? - PullRequest
0 голосов
/ 30 декабря 2010

Я уже некоторое время работаю с Doctrine, но я не очень доволен им.

Я пытаюсь сделать следующее: (Первичный ключ таблицы пользователя - это автоинкремент с именем userID)

$user = new Mode_User();
$user->set('username', 'BenKenobi');
$user->save();

все работает нормально, и Doctrine сохраняет его в базу данных.Теперь я хочу обновить этот объект следующим образом:

$user->set('email', 'BenKenobi@etc.de');
$user->save();

Это не выдаст ошибку, но ничего не произойдет.Есть ли у кого-нибудь подсказка для меня, потому что именно так должен работать ORM.

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Да, мы используем Доктрину 1.2. И я нашел проблему. Это preUpdate () - метод в пользовательской модели. Когда я комментирую метод, то все работает, но с этим методом нет. Я решил сделать запрос и выполнить его.

0 голосов
/ 30 декабря 2010

(я полагаю, вы используете Doctrine 1.x)

Я предлагаю вам прочитать прекрасные документы для Доктрины и изучить ее примеров .

То, что вы хотите, похоже на это:

$user = new Mode_User();
$user->username = 'BenKenobi;
$user->email = 'BenKenobi@etc.de';
$user->save();

Вы не используете set явно, но вы устанавливаете значение для свойства модели. Конечно, все эти функциональные возможности зависят от правильной настройки в базе данных и от того, что вы зададите все свойства моделей соответствующим образом.

...