Domanda

Impostazione graziosa standard:

Table "Posts", Tabella "Categorie" Pivot "Posts_Categories"

/************** 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');
}
.

Tabella pivot con set di tasti estranei corretti.

Non riesco a capire come ottenere tutti i messaggi senza categorie (o per quella materia ottenere categorie senza messaggi, come categorie vuote)

Mi piacerebbe farlo in eloquente, ma in SQL sarebbe qualcosa come:

SELECT *, 
       (SELECT COUNT(id) cnt 
        FROM posts_categories pc 
        WHERE pc.post_id = p.id)  AS cnt   
FROM posts p 
HAVING cnt = 0;
.

È stato utile?

Soluzione

È possibile utilizzare questo per ottenere tutto Posts che non dispongono di Category:

$posts = Post::has('categories', '=', 0)->get();
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top