2016-05-04 13 views
3

2つのオブジェクトTagPostの間に多対多の関係が設定されています。ビューで関連モデルのIDを取得する

//Load all possible tags in the controller 
//and send it to view 
$allTags = \App\Tag::all(); 
return view('post.edit')->with('allTags'); 

:今

@foreach($allTags as $tag) 
    <input type="checkbox" name="tags[]" value="{{ $tag->id }}"/> 
    {{ $tag->description }} 
@endforeach 

、ユーザーがページを再読み込みしたときに、私が持っている 今、私が投稿していチェックボックスの一覧で、そのようなウィッヒタグをチェックする必要がチェックボックスをチェックしてください。これらすべてのオブジェクトをロードすることなく、IDのみを取得する方法があります。これは確かに動作し

が、やり過ぎ私

$relatedTags = []; 
foreach($post->tags as $tag){ 
    $relatedTags[]= $tag->id; 
} 

のように思える:

私の質問はありますか?

次のようになります。$relatedTags = $post->tags()->ids

答えて

2

$relatedTagIds = $post->tags()->select('id')->get()->pluck('id')->toArray(); 

あなたがタグIDの明確なリストを取得する方法です。

+0

パーフェクト!ありがとうございました! – CarlosCarucce

2

これを使用して、必要なIDと説明のみを取得します。

あなたがそのような結果を照会して試すことができます
$allTags = DB::table('tags')->lists('description', 'id'); 
+0

それが役に立つことを願ったが、私の場合、私は唯一のポストタグが必要です。それらのすべてではありません – CarlosCarucce

+0

投稿タグはどういう意味ですか? –

+0

私は投稿に属するタグのみを意味しました – CarlosCarucce

0

フィリップスのおかげで、別の解決策が見つかりました。

$post->tags->pluck('id')->toArray(); 

私は誰かが良い

関連する問題