Как сделать запрос «найти и обновить» в Париже - PullRequest
0 голосов
/ 24 ноября 2011

Я использую Paris с Idiorm , и у меня возникают проблемы с нахождением в документации четкой инструкции о том, как найти и обновить таблицу.

Я не хочу вставлять SQL-запрос в скрипт.Есть ли другой способ?

Paris - это реализация Active Record, основанная на Idiorm.Idiorm - это объектно-реляционный картограф и свободный построитель запросов.

Я заинтересован в том, чтобы сделать что-то вроде count = count + 1 все за один раз

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Я нашел это на их сайте github :

Обновление записей Чтобы обновить базу данных, измените одно или несколько свойств объекта, затем вызовите метод save, чтобы зафиксировать изменения в базе данных. Опять же, вы можете изменить значения свойств объекта либо с помощью метода set, либо установив значение свойства напрямую:

$person = ORM::for_table('person')->find_one(5);

// The following two forms are equivalent
$person->set('name', 'Bob Smith');
$person->age = 20;

// Syncronise the object with the database
$person->save();
Creating new records

Чтобы добавить новую запись, вам необходимо сначала создать «пустой» экземпляр объекта. Затем вы устанавливаете значения для объекта как обычно и сохраняете его.

$person = ORM::for_table('person')->create();

$person->name = 'Joe Bloggs';
$person->age = 40;

$person->save();

После того, как объект был сохранен, вы можете вызвать его метод id (), чтобы найти автоматически сгенерированное значение первичного ключа, назначенное ему базой данных.

Проверка, было ли изменено свойство Чтобы проверить, было ли свойство изменено с момента создания объекта (или последнего сохранения), вызовите метод is_dirty:

$name_has_changed = $person->is_dirty('name'); // Returns true or false
0 голосов
/ 24 ноября 2011

Согласно документации на странице github, в idiorm вы можете обновить запись, выполнив следующие действия:

$person = ORM::for_table('person')->find_one(5);

// The following two forms are equivalent
$person->set('name', 'Bob Smith');
$person->age = 20;

// Syncronise the object with the database
$person->save();

Или сделать это в «Париже»:

$user = Model::factory('User')->find_one($id);
$user->name = 'Paris';
$user->save();
...