Я хочу обновить мой table/model
, Сценарий, у меня есть столбец «статус», я хочу SET
в этом столбце значение затем обновите модель на основе id
, Я хочу сделать что-то вроде update
заявление.
Update 'table' SET status = 'status value' where id = 'myid'
мой action controller
выглядит как
$model = $this->findModel($id);
$ogp_id = $model->id;
$status = $model->status;
Я искал это, но не мог найти решение
Любая помощь будет высоко оценен
для получения $ id связанной модели
Вы можете использовать findOne ($ id), если id является первичным ключом
$model =YourModel::findOne($id);
$model->status = 'Active';
$model->save();
или найти () -> Где () -> один () в общих случаях
$model =YourModel::find()-where(['id'=>$id])->one();
$model->status = 'Active';
$model->save();
если ваши правила проверки не пройдены, вы можете попробовать использовать $model->save(false);
если в этом случае строка e обновляется тонко, это означает, что некоторые из ваших данных не соответствуют правилам проверки .. и вам следует проверить это
Попробуй вот так,
$model =Table::find($id);
$model->status = 'Active';
$model->save();
Также команда Create может быть использована напрямую следующим образом:
Yii::$app->db->createCommand("UPDATE table SET status=:status WHERE id=:id")
->bindValue(':id', your_id)
->execute();
Это работает для меня
Я добавил функцию
protected function findModel($id)
{
if (($model = Ogpheader::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
Затем получить доступ к нему внутри контроллера
$model = $this->findModel($id);
$ogp_id = $model->id;
Затем, сохраняя мою модель, я сделал следующее
if($m->save())
{
$model->status = Ogpheader::$status_titles[1];
$model->update();
//my other code
}
Это обновило мою таблицу и установить столбец как требуется