Хочу обновить поле в таблице таким вот кодом
Код: Выделить всё
//Обновляем статус товара
foreach ($responce as $item) {
$status = 0;
if ($item->product_avaible == 0) {
$status = 0;
}
else if ($item->product_avaible > 0 && $item->product_avaible < 3) {
$status = 1;
}
else if ($item->product_avaible > 3) {
$status = 2;
}
$product = Product::find()->where(['id' => $item->product_id])->andWhere(['cloth_name' => $item->product_subgroup])->one();
$product->avaible = $status;
if(!$product->save()){
throw new \RuntimeException(Yii::t('app', 'Ошибка при обновлении товара ' . $product->name . ' ( ' . $product->id . ' )'));
}
continue;
}
Creating default object from empty value
Меняю SELECT на такой - все работает
Код: Выделить всё
//Обновляем статус товара
foreach ($responce as $item) {
$status = 0;
if ($item->product_avaible == 0) {
$status = 0;
}
else if ($item->product_avaible > 0 && $item->product_avaible < 3) {
$status = 1;
}
else if ($item->product_avaible > 3) {
$status = 2;
}
$product = Product::findOne($item->product_id);
$product->avaible = $status;
if(!$product->save()){
throw new \RuntimeException(Yii::t('app', 'Ошибка при обновлении товара ' . $product->name . ' ( ' . $product->id . ' )'));
}
continue;
}
Не мог бы кто-то обьяснить, а чем разница между
Код: Выделить всё
$product = Product::find()->where(['id' => $item->product_id])->andWhere(['cloth_name' => $item->product_subgroup])->one();
$product = Product::findOne($item->product_id);