Я пытаюсь получить список всех пользователей с постом и связать их с другой страницей, где перечислены все их посты.
Очевидно, что сначала я должен сделать свою страницу списка, а затем страницу с подробностями о моих пользователях, но кое-как я в итоге оказался со страницей подробностей и без страницы списка :)))
Во всяком случае, это то, что я до сих пор
Controller
public function chef() {
//
return view('front.chef');
}
public function chefdetail($username) {
$foods = Food::whereHas('user', function($q) use($username){
$q->where('username',$username);
})->get();
return view('front.chef-detail', compact('foods'));
}
Мои маршруты:
Route::get('/chef/{username}', 'FrontendController@chefdetail')->name('chefdetail');
Route::get('/chefs', 'FrontendController@chef')->name('chefs');
Вопросы (проблемы):
chef
функционировать?username
на страницу с подробным описанием моего повараЭто правильно, что я использовал
$user = User::find(1);
получить список пользователей? потому что я не мог получить пользователей по идентификатору, он возвращает ошибку.
С помощью этого кода вы передаете всех своих пользователей, у которых есть сообщения, на страницу блейда
public function chef() {
$users = User::has('posts')->get();
return view('front.chef', compact("users"));
}
В вашем клинке вы можете показать их как:
@foreach ($users as $user) {
<a href="{{ route("chefdetail",$user->username) }}">{{ $user->username }}</a>
@endforeach
тогда ваша функция chefdetail должна выглядеть так:
public function chefdetail($username) {
$user = User::where("username", $username)->with("posts")->first();
return view('front.chef-detail', compact('user'));
}
и вы можете показать пост, как это:
@foreach ($user->posts as $post) {
$post->someproperty
@endforeach
надеюсь, это поможет вам.
Других решений пока нет …