我不确定如何在控制器中递增整数
这是我尝试过的。我正在获取代码,添加一个然后保存。这将产生错误:“在字符串上调用成员函数save()”
我将返回计数以在浏览器中查看结果。在Tinker中运行$ count = Count :: find(1)-> count会给出正确的金额。
public function update(Request $request, Count $count)
{
$count = Count::find(1)->count;
$addOne = $count + 1;
$count->save();
return ($count);
}
有人可以告诉我这怎么不起作用以及我该怎么做才能解决这个问题?
这是迁移:
public function up()
{
Schema::create('counts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('count');
$table->timestamps();
});
}
这是模态:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Count extends Model
{
protected $fillable = [
'count'
];
}
答案 0 :(得分:4)
问题是您存储的是count属性,而不是对象本身。
$count = Count::find(1);
$count->count += 1;
$count->save();
return ($count);
应该做到这一点。
更多定义的命名也可能会有所帮助。不得不做一些精神体操来把我的头缠在我正在数的数字上。
答案 1 :(得分:1)
可接受的答案很好,但是使用Laravel提供的帮助方法可以更轻松地实现。
这样的代码:
$count = Count::find(1);
$count->increment('count');
return $count;
会做同样的事情。
答案 2 :(得分:0)
您可以
$count = Count::find(1);
$count->count += 1;
$count->save();
return $count;