Laravel Elquent:子供のない多対数選択項目(ピボットを使用)
質問
きれい標準設定:
表「投稿」、 表の「カテゴリ」 ピボット "POSTS_CATEGORIOSIONES"
/************** CATEGORY MODEL *********/
class Category extends Eloquent
{
/** standard code**/
public function posts()
{
return $this->belongsToMany('Post','posts_categories');
}
}
/************* POSTS MODEL ************/
class Post extends Eloquent
{
/** the usual **/
public function categories()
{
return $this->belongsToMany('Category', 'posts_categories');
}
.
適切な外部キーの設定を備えたピボットテーブル
カテゴリなしですべての投稿を取得する方法を理解することはできません(またはその問題のない、空のカテゴリのように、投稿なしでカテゴリを取得)
これを雄弁でやりたいのですが、SQLでは、次のようなものになるでしょう:
SELECT *,
(SELECT COUNT(id) cnt
FROM posts_categories pc
WHERE pc.post_id = p.id) AS cnt
FROM posts p
HAVING cnt = 0;
. 解決
Posts
が含まれていないすべてのCategory
を取得できます。
$posts = Post::has('categories', '=', 0)->get();
. 所属していません StackOverflow