在laravel中增加列

Vai*_*y07 16 php mysql increment laravel

有没有办法在laravel中增加多个列?

让我们说:

DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2)
->increment('column2', 10)
->increment('column3', 13)
->increment('column4', 5);
Run Code Online (Sandbox Code Playgroud)

但结果是:

Call to a member function increment() on integer

我只想找到一种使用laravel中给定函数执行此操作的有效方法.谢谢.任何建议都可以.

luk*_*ter 38

没有现成的功能可以做到这一点.你必须使用update():

DB::table('my_table')
   ->where('rowID', 1)
   ->update([
       'column1' => DB::raw('column1 + 2'),
       'column2' => DB::raw('column2 + 10'),
       'column3' => DB::raw('column3 + 13'),
       'column4' => DB::raw('column4 + 5'),
   ]);
Run Code Online (Sandbox Code Playgroud)


Sta*_*ark 9

为了将来参考5.2,通过以下方式可以做到这一点

您还可以在操作期间指定要更新的其他列:

DB :: table('users') - > increment('votes',1,['name'=>'John']);

资料来源:https://laravel.com/docs/5.2/queries#updates


小智 6

Laravel雄辩模型中的增减

添加到购物车选项是电子商务网站中最重要的功能之一。棘手的部分是获取购物车中要显示在购物车图标上的项目数。完成此任务的主要方法是在Laravel上使用递增和递减函数。这也有助于从购物车中添加或移除产品。实现此功能的方法是,

$user = User::find(‘517c43667db388101e00000f’);
$user->cart_count++;
// $user->cart_count--; // for decrement the count
$user->save()
Run Code Online (Sandbox Code Playgroud)

另一种简便的方法是

$user = User::find($article_id);
$user->increment('cart_count');
Run Code Online (Sandbox Code Playgroud)

这些也将起作用:

$user->increment('cart_count');// increase one count
$user->decrement('cart_count'); // decrease one count
$user->increment('cart_count',10); // increase 10 count
$user->decrement('cart_count',10); // decrease 10 count
Run Code Online (Sandbox Code Playgroud)


Luc*_*eos 5

首先,结果increment是根据文档的整数:http://laravel.com/api/4.2/Illuminate/Database/Query/Builder.html

所以你必须为每个增量做一个调用:

DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2);
DB::table('my_table')
->where('rowID', 1)
->increment('column2', 10);
DB::table('my_table')
->where('rowID', 1)
->increment('column3', 13);
DB::table('my_table')
->where('rowID', 1)
->increment('column4', 5);
Run Code Online (Sandbox Code Playgroud)

除非您想使用原始更新查询命令解决它,否则我无法找到任何更快的解决方案.

此外,您的示例代码可能会在您关闭语句时生成错误,;->increment在下一行继续新调用.


Zia*_*man 5

现在在 laravel 5.7 laravel 查询构建器中, increment 和 decrement,它可以轻松完成。

Model::where('id', "rowID")->increment('columne1');` 
Run Code Online (Sandbox Code Playgroud)

或者你可以使用数据库

DB::table("my_table")->where('id', "rowID")->increment('column1');
Run Code Online (Sandbox Code Playgroud)