質問

きれい標準設定:

表「投稿」、 表の「カテゴリ」 ピボット "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();
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top