【发布时间】:2016-02-12 04:25:44
【问题描述】:
我有一个杂项数据库表,每次用户访问另一个用户的个人资料时都会更新该表。不过,我在创建手动时间戳列时遇到了麻烦。由于我没有为此创建模型,因此我是手动进行的,这应该不是问题,因为此数据库不接受任何用户生成的输入。
迁移:
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()]);
【问题讨论】:
-
Carbon::now()不是时间戳实例。所以,试试->update(array('last_visit' => Carbon::now()->timestamp));,如果你有任何其他错误,请告诉我。 -
仍然显示同样的错误。
-
它与
increment()通话。所以你应该在更新方法中和时间戳更新一起做。 -
您能否更新问题并为未来的访问者提供正确的查询?
-
完成!谢谢提醒。
标签: laravel