2017-09-04 5 views
0

私はすべての投稿のリストを取得し、それらの投稿がすべてリストされている別のページにリンクしようとします。laravel投稿とプロフィールのリンクを持つユーザーリスト

はもちろん、私は私のユーザーの詳細ページ最初の私のリストページを作成する必要がありますが、私は詳細ページなし一覧ページ:)))とにかく

になってしまった方法をいくつか:これは私がこれまで持っているものです。

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}', '[email protected]')->name('chefdetail'); 
Route::get('/chefs', '[email protected]')->name('chefs'); 

質問(課題):

  1. どのように私は私のchef機能で投稿しているユーザーのリストを得るのですか?
  2. 私はシェフにusernameを追加するにはどうすればよいの詳細ページのURL

それは私がユーザーのリストを取得するに$user = User::find(1);を使用していることが正しいですか? idでユーザーを取得できなかったため、エラーが返されます。お使いのブレードで

+0

シェフのページにも投稿が必要ですか?またはシェフ/ユーザ名でのみ? –

+0

@LeonardoCabréポストを持ち、詳細ページにリンクしているユーザーの名前だけではありません – mafortis

+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 

希望これはあなたに役立ちます。

+0

ok今は1つの問題があります。シェフの機能では、投稿なしのすべてのユーザーを取得します。投稿のあるユーザーのみを取得します。 – mafortis

+0

回答が –

+0

ありがとうございました........ – mafortis

関連する問題