我的博客 laravel 項(xiàng)目有很多帖子,每個(gè)帖子都屬于很多標(biāo)簽?,F(xiàn)在我想檢索所有博客及其標(biāo)簽并回顯每個(gè)標(biāo)簽。這是我寫(xiě)的代碼。有沒(méi)有更好的辦法?$posts = Post::with('tags')->get(); foreach ($posts as $post) { foreach ($post->tags as $tag) { echo "<pre> $tag->name </pre>"; } } die();
1 回答

米琪卡哇伊
TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
Eager loading
您可以像在代碼中一樣獲取所有標(biāo)簽。
$posts = App\Post::with('tags:name')->get();
foreach ($posts as $post) {
? ? foreach ($post->tags as $tag) {
? ? ? ? echo "<pre> $tag->name </pre>";
? ? }
}
這是正確的解決方案。
您甚至可以通過(guò)DB查詢(xún)來(lái)完成它以使其更快,但可能您的方式就足夠了。
$posts = App\Post::all()->pluck('id');
return DB::select('SELECT name FROM tags WHERE id in (' . implode(',', $posts) . ')');
最后提示:不要將 HTML 視圖與邏輯合并。
- 1 回答
- 0 關(guān)注
- 146 瀏覽
添加回答
舉報(bào)
0/150
提交
取消