Laravel手动更新时间戳

Laravel手动更新时间戳,laravel,Laravel,我有一个杂项数据库表,每当用户访问另一个用户的配置文件时,该表都会更新。但是,我在创建手动时间戳列时遇到问题。由于我没有为此创建模型,所以我正在手动执行此操作,这不应该是一个问题,因为此数据库不接受任何用户生成的输入 迁移: public function up() { Schema::create('recently_visited', function (Blueprint $table) { $table->increments('id');

我有一个杂项数据库表,每当用户访问另一个用户的配置文件时,该表都会更新。但是,我在创建手动时间戳列时遇到问题。由于我没有为此创建模型,所以我正在手动执行此操作,这不应该是一个问题,因为此数据库不接受任何用户生成的输入

迁移:

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()]);
请帮助我理解,这个被调用的整数是什么

方法不返回查询生成器实例,而是更新记录本身并返回整数

您应该能够做到这一点:

$visions=DB::table('最近访问')
->其中('profile_id',$user->id)
->其中('visitor_id',Auth::user()->id)
->增量('times_visit',1,array('last_visit'=>Carbon::now());
请帮助我理解,这个被调用的整数是什么

方法不返回查询生成器实例,而是更新记录本身并返回整数

您应该能够做到这一点:

$visions=DB::table('最近访问')
->其中('profile_id',$user->id)
->其中('visitor_id',Auth::user()->id)
->增量('times_visit',1,array('last_visit'=>Carbon::now());

Carbon::now()
不是时间戳实例。因此,尝试更新(数组('last_visit'=>Carbon::now()->timestamp))并告诉我是否有任何其他错误。仍然显示相同的错误。这与
increment()
调用有关。因此,您应该在更新方法中与时间戳更新一起进行更新。您是否可以使用正确的查询更新问题,以供将来的访问者使用?完成!谢谢提醒。
Carbon::now()
不是时间戳实例。因此,尝试更新(数组('last_visit'=>Carbon::now()->timestamp))并告诉我是否有任何其他错误。仍然显示相同的错误。这与
increment()
调用有关。因此,您应该在更新方法中与时间戳更新一起进行更新。您是否可以使用正确的查询更新问题,以供将来的访问者使用?完成!谢谢你的提醒。好的,可以了。我不太理解在查询生成器中使用increment()的文档,但现在我明白了。非常感谢。->增量('times_visited',1,['last_Visition'=>Carbon::now());好的,行了。我不太理解在查询生成器中使用increment()的文档,但现在我明白了。非常感谢。->增量('times_visited',1,['last_Visition'=>Carbon::now());