que plantillas motor index gratis for entre diferencias descargar content ciclo laravel eloquent

plantillas - laravel foreach index



Elocuente: no tiene parĂ¡metro (3)

Tengo los siguientes modelos elocuentes:

Usuario | carné de identidad

Publicar | carné de identidad

Comentario | id | post_id | identidad de usuario

Usando elocuente, ¿cómo puedo obtener todas las publicaciones que un usuario específico no ha comentado todavía?

Lo intenté hasta ahora:

En la publicación de modelo:

public function noCommentOf(User $user) { $this->hasNot(''App/Comment'')->commentOf($user); }

En el comentario del modelo:

public function commentOf($query, User $user) { return $query->where(''user_id'', ''='', $user->id); }


Creo:

$user->post()->leftJoin(''comments'', ''posts.id'', ''='', ''comments.post_id'')->whereNull(''comments.id'');


La forma en que haría esto es consultar el modelo de Post con una relación whereDoesnthave . En tu controlador:

public function getPostsWithoutCommenter(){ $userId = 1; // Could be `$user`, `use($user)` and `$user->id`. $posts = /App/Post::whereDoesntHave("comments", function($subQuery) use($userId){ $subQuery->where("user_id", "=", $userId); })->get(); }

Esto supondría que los comments se definen en el modelo de Post como:

public function comments(){ return $this->hasMany(Comment::class); }

Básicamente, si la relación de comments con el cheque para ese $userId devuelve una Collection , se $userId desde el conjunto de resultados.


Modelo de publicación

public function comments() { return $this->hasMany(Comment::class) }

Luego consigue publicaciones

$posts = Post:: whereDoesntHave(''comments'', function ($query) use ($userId) { $query->where(''user_id'', $userId); });

Para obtener publicaciones sin comentarios

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