2012-03-22 3 views
0

Я новичок в DataMapper ORM в CodeIgniter, вот мой вопрос. В соответствии с руководством:Подтвердить данные по обновлению DataMapper ORM CodeIgniter

Будьте осторожны с этим методом. Не ограничивая его, где заявления или аналогичные методы, он будет изменять каждую строку в таблице !

Кроме того, этот метод обходит проверку и также может работать с внешними ключами в таблице, поэтому, пожалуйста, имейте в виду риски.

Если метод обновления обходит проверку, каким образом обновить запись, проверяющую ее перед обновлением? Образец кода будет оценен.

ответ

0

DataMapper ORM не может подтвердить, так как он может выполнять только данные, которые вы выбрали первым. Использование UPDATE позволяет MySQL изменять поля, не проверяя возможные функции проверки PHP.

Решение сначала захватывает все нужные вам строки и использует функцию save(). Затем будет выполнена проверка на стороне PHP.

http://datamapper.wanwizard.eu/pages/save.html

Я немного ржавый на DataMapper ОРМ, но вот пример, который должен объяснить, что вы должны сделать:

$users = new User(); 
$users->where('age', 25)->get(); 
foreach($users as $user) 
{ 
    $user->age = 26; 
    $user->save(); 
} 
0

Обновление() метод ничего более синонима $ это -> db-> обновление().

Он проверяет, следует ли добавлять обновленную метку времени к обновленным записям и убедиться, что пройденные поля существуют в таблице, которую вы собираетесь обновлять.

для обновления объектов используйте save(). Он автоматически определит, нужен ли INSERT или UPDATE.

+0

В случае использования save() для обновления объектов, устанавливает ли он отметку времени загрузки или изменяет создание? – greenLizard

0

если вы попробуете $ obj-> save(); и динамические правила валидации (в зависимости от некоторой переменной $ _POST) и до сих пор не подтверждены,

попробуйте использовать $ obj-> force_validation(); перед $ obj-> save();

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