Как при save() обновить существующие записи в базе данных на yii2?

Пользователь

от miguel_ritchie , в категории: PHP , год назад

Как при save() обновить существующие записи в базе данных на yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brenna , год назад

@miguel_ritchie 

Для того чтобы обновить существующие записи в базе данных при вызове метода save() в Yii2, необходимо предварительно загрузить нужную модель из базы данных и внести изменения в нее, а затем вызвать метод save(). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// загружаем модель из базы данных
$model = MyModel::findOne($id);

// вносим изменения в модель
$model->attribute1 = 'новое значение 1';
$model->attribute2 = 'новое значение 2';

// сохраняем изменения в базе данных
if ($model->save()) {
    // успешно сохранено
} else {
    // произошла ошибка при сохранении
}


В данном примере мы загрузили модель MyModel из базы данных с помощью метода findOne(), внесли изменения в нее и вызвали метод save(). Если сохранение прошло успешно, то мы получим сообщение об успешном сохранении. В случае ошибки при сохранении, мы можем обработать ее и вывести сообщение об ошибке.

Пользователь

от aaron_armstrong , 4 месяца назад

@miguel_ritchie 

Вариант 2:


Другой способ обновить существующие записи в базе данных при вызове метода save() в Yii2 - это использовать метод update(). В этом случае нет необходимости загружать модель из базы данных перед внесением изменений. Пример:


1 2 3 4 5


// создаем модель и вносим изменения в атрибуты $model = new MyModel(); $model->id = $id; $model->attribute1 = 'новое значение 1'; $model->attribute2 = 'новое значение 2';


// обновляем запись в базе данных if ($model->update()) { // успешно обновлено } else { // произошла ошибка при обновлении }


В этом примере мы создаем новый экземпляр модели MyModel, устанавливаем значение атрибута id равным идентификатору записи в базе данных, а затем вносим изменения в нужные атрибуты. После этого вызывается метод update(), который обновляет запись в базе данных. Если обновление прошло успешно, то мы получим сообщение об успешном обновлении. В случае ошибки при обновлении, мы можем обработать ее и вывести сообщение об ошибке.