laravel - 拉拉维尔。如何在一列的每一行中保存一个新值?
问题描述
我有一张桌子,请看migration
下面:
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->integer('group');
$table->string('code');
$table->string('name');
$table->double('price');
$table->timestamps();
});
我想将column = price
每行的 增加一个我从input form
. 我能够看到我能够检索然后增加的价格,但我正在努力弄清楚如何在每个价值增加时保存它。
我尝试了什么:
public function increase(Request $request){
$products = DB::table('products')->select('price')->get();
$percentage = $request['increase'];
foreach ($products as $product) {
$price = $product->price * ((100 + $percentage)/100);
$product->price = $price;
$product->save();
}
}
但我得到一个错误,Call to undefined method stdClass::save()
解决方案
你可以在一个声明中做到这一点:
$percentage = $request['increase'];
DB::table('products')->update(['price'=> DB::raw("price * ((100 + {$percentage})/100)")]);
推荐阅读
- shell - Shell 脚本未从 jenkins 文件运行
- asp.net-core - 我可以在哪里翻译 ASP.NET Core 的 Identity 中的“ForgotPassword”页面?
- javascript - 获取从引导选择选择器多选中选择的所有值
- maven - 如何使用 maven help:evaluate 在表达式中链接多个属性?
- c - Azure IoT SDK - 连接不被接受的问题
- c++ - 询问枚举的新语法(C++)
- javascript - 替换jQuery中的元素
- php - 在 Laravel 中,如何从我的视图文件中的多个 db 表中选择数据?
- pyspark - 如何将两个数据框连接在一起
- c - 如何使用C语言创建一个名称未知的目录