在laravel中查询刀片视图内部

时间:2017-02-08 09:12:42

标签: laravel-5

嗨我正在尝试进行像

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

但是这个查询会输出类似这样的内容

["1486468548.jpg"]

我在期待

1486468548.jpg

这样它实际上可以被阅读。关于如何删除块和引号的任何想法???我知道在刀片服务器中查询不是一个好习惯,但是我的代码流程不知道如何更改用户头像。

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

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

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

3 个答案:

答案 0 :(得分:0)

试试这个......

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

答案 1 :(得分:0)

在Laravel 5.4 pluck()中返回这些值的集合(即使只有一个)。

您可以这样做:

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

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

话虽如此,我还建议在PostUser之间建立一种关系,这样您就可以急切地加载这些关系,以便您能够:

  1. 不必在你内部查询(逻辑不应该在那里)。
  2. 当您不需要
  3. 时,您不会执行多个查询

    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;
    

    希望这有帮助!

答案 2 :(得分:0)

这是很酷的方法,只需在末尾添加[0]并完成

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