Я хочу получить аватар пользователя из моей таблицы пользователей, когда у меня есть только имя пользователя из моей таблицы сообщений.
Я пытался сделать цикл по каждому элементу следующим образом:
$posts = Post:all();
foreach($posts as $post) {
$user = User::where('name', $post->creator)->get();
}
return view('welcome')->with('posts', $posts)->with('user', $user);
Затем зациклим это, на мой взгляд, так:
@foreach($posts as $post)
@foreach($user as $creator)
<span>{{ $creator->avatar }}</span>
<span>{{ $post->post_url }}</span>
@endforeach
@endforeach
Но он возвращает мне то же самое изображение аватара, а не изображение аватара пользователя, которому принадлежит сообщение.
Моя пользовательская модель:
protected $fillable = [
'name', 'email', 'password', 'avatar', 'full_name', 'slug'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function posts() {
return $this->hasMany(Post::class, 'creator','name');
}
Почтовая модель:
protected $fillable = [
'creator', 'post_url', 'game', 'likes', 'created_at'
];
public function user() {
return $this->belongsTo(User::class);
}
Мой web.php:
Route::get('/', 'PostController@main_page');
Моя функция main_page:
public function main_page()
{
$posts = Post:all();
foreach($posts as $post) {
$user = User::where('name', $post->creator)->get();
}
return view('welcome')->with('posts', $posts)->with('user', $user);
}
Может ли кто-нибудь просветить меня и привести меня на правильный путь? Спасибо!