Yii2 Call to undefined method stdClass::save()
В последнее время в yii2 ловлю вот такую ошибку: Error Call to undefined method stdClass::save()
Она вылазиет из-за того, что в контроллере пишу такую жесть:
public function actionIndex($short = '') {
if ($short != '') {
$link = Link::find()->where(['short_url' => $short])->one();
$link->view += 1;
$link->save();
$this->redirect($link->url);
} else {
return $this->render('index');
}
}
Строка с ошибкой это $link->save();, вообщем как поправить эту вещь, что бы она сохраняла?? Помню в версии 2.0.30 это еще работало сейчас 2.0.42.1 и не робит.
Ответы (1 шт):
Автор решения: Starik
→ Ссылка
public function actionIndex($short = '') {
if ($short != '') {
$link = Link::find()->where(['short_url' => $short])->one();
$link->updateCounters(['view' => 1]);
$this->redirect($link->url);
} else {
return $this->render('index');
}
}
https://www.yiiframework.com/doc/api/2.0/yii-db-baseactiverecord#updateCounters()-detail
Единственный момент, если не ошибаюсь - счётчики не валидируются. Но в вашем случае там число 1, поэтому всё нормально.