包含关系的表中的所有数据,空数组

时间:2015-05-04 19:19:27

标签: php laravel laravel-4 orm model

我有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

1 个答案:

答案 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...