Laravel:访问阵列中的数组

时间:2014-07-06 13:18:20

标签: php arrays laravel

我想访问一个Array,它保存在另一个数组中。

我有一个看起来像这样的作者模型:

public function chapters() {
    return $this->hasManyThrough('Chapter', 'Book');
}    

然后我想继续抓住所有章节,这些章节是由作者写的:

$chapters = Author::with('chapters')->where('id', $author->id()->get());

但是当我想要返回章节时,它们会被保存在一个数组中。

return dd($chapters->toArray());

看起来像这样:

array (size=1)
0 => 
  array (size=15)
    'id' => int 4
    'email' => string 'user@email.com' (length=18)
    'chapters' => 
      array (size=7)
        0 => 
          array (size=15)
            ...
        1 => 
          array (size=15)
            ...
        2 => 
          array (size=15)
            ...
        3 => 
          array (size=15)
            ...
        4 => 
          array (size=15)
            ...
        5 => 
          array (size=15)
            ...
        6 => 
          array (size=15)
            ...    

但我希望我的数组实际上看起来像这样:

array (size=4)
0 => 
  array (size=15)
    'id' => int 504
    'rating1' => int 48
    'rating2' => int 51
1 => 
  array (size=15)
    'id' => int 505
    'rating1' => int 96
    'rating2' => int 96

2 => 
  array (size=15)
    'id' => int 506
    'rating1' => int 7
    'rating2' => int 5
3 => 
  array (size=15)
    'id' => int 507
    'rating1' => int 21
    'rating2' => int 21

这样我才能真正做到这一点:

 return dd($chapters->lists('rating1'));

我目前如何获得章节的可访问数组?

谢谢和亲切的问候,乔治

1 个答案:

答案 0 :(得分:1)

你需要的是:

$author = User::with('chapters')->find($id);

$chapters = $author->chapters;

// then:
$chapters->lists('rating1');