我有Post,Category和Tag模型及其关系,并在其他查询中运作良好。
如果我特意获得帖子的类别和标签,数据会正确返回。
$post = Post::with('categorias', 'etiquetas')->find($id)->toArray();
使用 Post :: has 只显示数据的帖子确实有类别,至少我理解它,所以这对我没用。
$posts = Post::has('category')->get()->toArray();
但是当我尝试为每个帖子获取所有帖子及其相应的类别和标签时,我会得到一个数组,其中包含更多空类别和标签的数组。我可以让数组附带其数据。
$posts = Post::with('categorias', 'etiquetas')->get()->toArray();
1 =>
array (size=11)
'id' => string '2' (length=1)
'titulo' => string 'A title once again' (length=18)
'subtitulo' => string '' (length=0)
'contenido' => string 'And the post body follows.' (length=26)
'created_at' => string '2015-04-09 13:19:12' (length=19)
'updated_at' => string '2015-05-04 13:44:25' (length=19)
'user_id' => null
'publicacion' => string '0000-00-00 00:00:00' (length=19)
'activo' => string '0' (length=1)
'categorias' =>
array (size=5)
0 =>
array (size=3)
...
1 =>
array (size=3)
...
2 =>
array (size=3)
...
3 =>
array (size=3)
...
4 =>
array (size=3)
...
'etiquetas' =>
array (size=0)
empty
答案 0 :(得分:0)
我自动回答了我的问题。
查询正常运行:
$posts = Post::with('categorias', 'etiquetas')->get()->toArray();
在laravel 4中,转储器没有显示数据关系,所以你必须到达那里。
dd($posts[1]['categorias']);
array (size=5)
0 =>
array (size=3)
'id' => string '7' (length=1)
'nombre' => string 'CATEGORIA1' (length=13)
'pivot' =>
array (size=2)
'post_id' => string '2' (length=1)
'categoria_id' => string '7' (length=1)
1 =>
array (size=3)
'id' => string '8' (length=1)
'nombre' => string 'CATEGORIA2' (length=17)
'pivot' =>
array (size=2)
'post_id' => string '2' (length=1)
'categoria_id' => string '8' (length=1)
2...