laravel用户列表,包含帖子和个人资料链接

时间:2017-09-04 16:11:00

标签: php laravel laravel-5

我尝试获取所有帖子的用户列表,并将其链接到列出所有帖子的不同页面。

显然我必须首先制作我的列表页面,然后是我的用户详细信息页面,但有些我最终得到的是详细信息页面而没有列表页面:)))

无论如何:这就是我到目前为止所做的:

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');

问题(问题):

  1. 如何获取chef函数中包含帖子的用户列表?
  2. 如何将username添加到我的厨师详细信息页面网址
  3.   

    我使用$user = User::find(1);获取用户列表是否正确?因为我无法通过id获取用户它返回错误。

1 个答案:

答案 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

希望这会对你有所帮助。