我尝试获取所有帖子的用户列表,并将其链接到列出所有帖子的不同页面。
显然我必须首先制作我的列表页面,然后是我的用户详细信息页面,但有些我最终得到的是详细信息页面而没有列表页面:)))
无论如何:这就是我到目前为止所做的:
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);
获取用户列表是否正确?因为我无法通过id获取用户它返回错误。
答案 0 :(得分:0)
使用此代码,您将所有有帖子的用户传递到您的刀片页
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
希望这会对你有所帮助。