嗨,我正在尝试做一个类似的查询
{{ \App\User::where(['name' => $posts->username])->pluck('avatar') }}
Run Code Online (Sandbox Code Playgroud)
但是这个查询输出这样的东西
["1486468548.jpg"]
Run Code Online (Sandbox Code Playgroud)
我在期待
1486468548.jpg
Run Code Online (Sandbox Code Playgroud)
以便它实际上可以被读取。关于如何删除块和引号的任何想法???我知道在 Blade 中查询不是一个好习惯,但是使用我的代码流,我不知道如何获取用户头像。
我的控制器看起来像这样。它是从哪里生成帖子的。有没有办法让我的用户头像具有帖子表的值。我知道它存在,但我不知道如何
public function getDashboard()
{
$posts = Post::orderBy('created_at', 'desc')->get();
return view('home', ['post' => $posts]);
}
Run Code Online (Sandbox Code Playgroud)
在 Laravel 5.4 中pluck()返回这些值的集合(即使只有一个)。
你可以这样做:
\App\User::where(['name' => $posts->username])->pluck('avatar')->first();
Run Code Online (Sandbox Code Playgroud)
或者
\App\User::where(['name' => $posts->username])->first()->avatar;
Run Code Online (Sandbox Code Playgroud)
话虽如此,我还建议在Posts 和Users之间创建关系,以便您可以急切地加载关系,以便您:
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();
Run Code Online (Sandbox Code Playgroud)
并通过以下方式获取头像:
$post->user->avatar;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
19309 次 |
| 最近记录: |