2017-02-08 56 views
0

您好我试图做一个查询像查询在laravel刀片视图内

{{ \App\User::where(['name' => $posts->username])->pluck('avatar') }} 

但是这个查询输出这样的事情

["1486468548.jpg"] 

我期待

1486468548.jpg 

这样它才能真正被读取。关于如何删除块和引号的任何想法?我知道这是不是一个好的做法,查询刀片式服务器,但与我的代码流,我不知道如何ge用户头像。

我的控制器看起来像这样。它的帖子是从哪里生成的。有没有办法我可以得到用户头像值为帖子表。我知道它的存在,但我不知道

public function getDashboard() 
{ 
    $posts = Post::orderBy('created_at', 'desc')->get(); 

    return view('home', ['post' => $posts]); 
} 
+0

您使用的是什么版本的Laravel? –

+0

@RossWilson 5.4 –

回答

0

在Laravel 5.4 pluck()返回这些值的Collection(哪怕只有一个)。

你可以这样做:

\App\User::where(['name' => $posts->username])->pluck('avatar')->first(); 

\App\User::where(['name' => $posts->username])->first()->avatar; 

话虽这么说,我还建议建立Post S和User S之间的关系,这样就可以急于负荷的关系,使你是:

  1. 无需查询你内部查看(逻辑sh不会真的在那里)。
  2. 你不执行多个查询时,不需要

https://laracasts.com/series/laravel-from-scratch-2017/episodes/15 https://laravel.com/docs/5.4/eloquent-relationships#one-to-many

然后,你可以与用户加载的帖子:

$posts = Post::with('user')->orderBy('created_at', 'desc')->get(); 

,并通过获得的化身:

$post->user->avatar; 

希望这有助于!

0

怎么尝试......

{{ \App\User::where(['name' => $posts->username])->pluck('avatar')->first() }} 
+0

希望你喜欢它.. –