第一种方法:
函数上是不支持的, 一定要一起操作的话,可以利用第三个参数曲线救国 :
increment('detail_count', 1, ['num'=>DB::raw('num + 1')]) ;
实测通过!
看一下laravel的increment方法:
D:\phpStudy\WWW\xxx\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php
public function increment($column, $amount = 1, array $extra = [])
{
if (! is_numeric($amount)) {
throw new InvalidArgumentException('Non-numeric value passed to increment method.');
}
$wrapped = $this->grammar->wrap($column);
$columns = array_merge([$column => $this->raw("$wrapped + $amount")], $extra);
return $this->update($columns);
}
可以看出,第三个参数是支持raw方法进行额外操作的。
第二种方法:
$results = DB::table('articles')->where('id', $params['id'])
->update(array(
'vote' => DB::raw('vote + 1'),
'num' => DB::raw('num + 1'),
));
这个更加直观。