Pergunta

Eu tenho adequada ORM baseado post tags e tabelas.Tags atribuição de postar mais de uma tabela dinâmica.Para obter posts->marcas no laravel que eu uso abaixo de modelo de relação.

//Model: Post
public function tags()
{
$this->belongsToMany('Tag', 'post_tag', 'post_id', 'tag_id');
}

Aqui está o meu banco de dados:

post
  id

tags
  id

post_tag
  post_id
  tag_id

Pergunta

Quero recuperar todos os posts que tem uma spesific nome da marca.

O que eu tentei

Post::with(array('tags' => function($query) { $query->where('id', '=', 44); }))->get(); com o carregamento imediato.Mas deu erro de integridade.

Também tentei consulta de relação, jogar um objeto não-erro.

Post::whereHas('tags', function($q)
{
    $q->where('id', '=', $tag_id);

})->get();
Foi útil?

Solução

A relação é bidirecional

você precisa definir o seu modelo de Tag como

class Tag{
    public function posts()
    {
         return $this->belongsToMany('Post');
    }
}

você poderia então fazer

$posts = Tag::find(44)->posts;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top