如何在Laravel查询结果中访问列

Jas*_*uri 6 php laravel eloquent laravel-5 laravel-5.2

我的控制器出现错误 Undefined property: Illuminate\Database\Eloquent\Collection::$created_at

如何created_at从laravel查询结果访问列?

控制器代码:

    public function getDashboard() {
        $posts=Post::latest('created_at')->get();
        dd($posts->created_at);
  //      $posts->created_at=Carbon::parse($posts->created_at)->diffForHumans(Carbon::now());
        return view('dashboard',compact('posts'));
    }
Run Code Online (Sandbox Code Playgroud)

它适用findOrFail(some_id)于此但不适用,为什么?

Ale*_*nin 5

get() 返回collection,因此您需要对其进行迭代:

foreach ($posts as $post) {
    echo $post->created_at;
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用first()获取对象而不是集合。在这种情况下,它将起作用:

$post = Post::latest()->first();
$post->created_at;
Run Code Online (Sandbox Code Playgroud)

另外,您无需传递created_atlatest(),因为此列定义为默认值:

public function latest($column = 'created_at')
Run Code Online (Sandbox Code Playgroud)