获取碳与用户表中的laravel的updated_at列一起使用

时间:2017-05-14 15:47:45

标签: php laravel laravel-5.4 php-carbon

我有一个使用laravel创建的数据表,这是我用来获取数据的代码

@Entity
public class Strecke {

   @OneToMany(cascade = CascadeType.ALL, mappedBy="strecke")
   private List<Faehre> faehren = new ArrayList<>();

}

updated_at列中包含的示例数据如下所示

public function getTasks() { $users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']); return Datatables::of($users) ->addColumn('action', function ($user) { return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>'; })->editColumn('users_last_seen_carbon_object', function(User $user) { $datetime = Carbon::createFromDate($user->updated_at); return $datetime->diffForHumans(); })->make(true); }

早些时候,我试过2017-05-06 15:16:54,但是json已经腐败了。

此代码

return $user->updated_at->diffForHumans()

在1秒前显示所有行的last_seen,即使持续一段时间也不会更新。

我如何确保上次看到的显示应该如此?

3 个答案:

答案 0 :(得分:1)

updated_at字段应该是Carbon的一个实例,并且使用方法self.view.wantsLayer = true 应该可以正常工作。

diffForHumans

我能否知道破坏你的json反应怎么样?此外,您无需在此代码中指定模型类型。

return $user->updated_at->diffForHumans();

答案 1 :(得分:0)

我终于以这种方式工作了

public function getTasks()
    {
      $users = User::select(['id','users_full_names', 'email', 'users_telephone_number', 'users_credits', 'users_last_seen_carbon_object','users_profile_picture','updated_at']);

        return Datatables::of($users)
            ->addColumn('action', function ($user) {
                return '<a href="/edit/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a> <a href="/delete/'.$user->id.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-trash"></i> Delete</a> <a href="/moderate/'.$user->emp_no.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-ban-circle"></i> Moderate</a> <a href="/view/'.$user->emp_no.'" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-search"></i> View</a> <a href="/impersonate/'.$user->id.'" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-user"></i> Impersonate</a>';
            })->editColumn('updated_at', function(User $user) {
              $dt = $user->updated_at->toDateTimeString();
              $datetime = Carbon::parse($dt);;
                    return $datetime->diffForHumans();
                })->make(true);
    }

答案 2 :(得分:0)

仅使用$user->updated_at而不使用Carbon::createFromDate($user->updated_at),因为updated_atdate_format。您不需要Carbon::createFromDate

如果您想要$date = $user->updated_at

及之后:

return $date->diffForHumans();