我有一个杂项数据库表,每次用户访问其他用户的个人资料时都会更新。我在创建手动时间戳列时遇到问题。由于我没有为此创建模型,因此我手动执行此操作不应该是一个问题,因为此数据库不接受任何用户生成的输入。
迁移:
public function up()
{
Schema::create('recently_visited', function (Blueprint $table) {
$table->increments('id');
$table->integer('visitor_id');
$table->integer('profile_id');
$table->integer('times_visited');
$table->timestamp('last_visit');
});
}
控制器:
$visits = DB::table('recently_visited')
->where('profile_id',$user->id)
->where('visitor_id',Auth::user()->id)
->increment('times_visited')
->update(array('last_visit' => Carbon::now()));
我收到以下错误。请帮助我理解,调用它的整数是多少。谢谢!
致命错误:在整数
上调用成员函数update()解答:
我只需要在查询构建器中的increment()中包含我更新的所有内容。
$visits = DB::table('recently_visited')
->where('profile_id',$user->id)
->where('visitor_id',Auth::user()->id)
->increment('times_visited', 1, ['last_visit' => Carbon::now()]);
答案 0 :(得分:3)
请帮助我理解,调用它的整数是什么。
increment()
方法不返回查询构建器实例,而是更新记录本身并返回一个整数。
你应该可以这样做:
$visits = DB::table('recently_visited')
->where('profile_id',$user->id)
->where('visitor_id',Auth::user()->id)
->increment('times_visited', 1, array('last_visit' => Carbon::now()));