Доброго дня!
В таблице товаров 'products' есть поле 'autoscu' (имеет вид "xxx-xxx", где "х" - цифра 0-9). Мне нужно для всех товаров (до 1000 штук) поменять его, убрав символ дефиса.
В контроллере у меня так:
public function modifyAutoScu(Request $request) {
$products = Product::all();
foreach ($products as $product) {
$product->update(['autoscu' => preg_replace("/[^0-9]/", "", $product->autoscu )]);
}
return redirect()->route('admin.products.index');
}
Изменения не сохраняются. Более того, при такой проверке:
$products = Product::all();
foreach ($products as $product) {
$product->autoscu = '123456';
dd($product->autoscu);
}
Выводит старое неизмененное значение.
Поле 'autoscu' присутствует в модели Product в массиве $fillable.
Если менять по одному продукту, всё получается:
$product = Product::first();
$product->update(['autoscu' => preg_replace("/[^0-9]/", "", $product->autoscu )]); //это работает
Вариант через save(), соответственно, тоже не работает:
$products = Product::all();
foreach ($products as $product) {
$product->autoscu = preg_replace("/[^0-9]/", "", $product->autoscu );
$product->save();
}
Как решить эту простую проблему?