Laravel elocuente obtiene todos los registros donde tiene todos los identificadores en una relación de muchos a muchos
tengo unPosts
tabla tiene tres camposid
, title
, description
.
MiPost
Modelo
class Post extends Model
{
use SoftDeletes;
protected $fillable = ['title', 'description'];
public function tags()
{
return $this->belongsToMany(Tag::class, 'post_tag');
}
}
MiTag
Modelo
class Tag extends Model
{
use SoftDeletes;
protected $fillable = ['name'];
public function posts()
{
return $this->belongsToMany(Post::class, 'post_tag');
}
}
Ahora quiero obtener publicaciones y paginar donde tengo un filtro de etiquetas, por ejemplo, tengo dos etiquetasanimals
& news
que tiene id1
& 2
. Ahora quiero obtener todas las publicaciones que tengan etiqueta1
& 2
& paginate
. Esto es lo que probé
Post:: with('tags')->whereHas('tags', function($q) {
$q->whereIn('id', [1, 2]);
})->paginate();
Pero aqui como estoywhereIn
devuelve mensajes tiene etiquetas1
o2
oboth
. Pero quiero publicar quién tiene las etiquetas ID 1 y 2.
estoy usandoLaravel 5.2
.