只有字段的Laravel集合返回集合

时间:2016-12-15 14:40:08

标签: laravel laravel-5 laravel-5.2 laravel-5.3

我有一些Laravel系列包含一些字段:

Collection {#324 ▼
  #items: array:3 [▼
    0 => array:5 [▼
      "img_src" => "http://newregalospersonales.dev/./svg/regalos-personalizados-gift.svg"
      "img_alt" => "<span>Regalos</span> originales"
      "class" => "personalised-gifts"
      "elements" => array:4 [▼
        0 => array:2 [▶]//element1
        1 => array:2 [▶]//element2
        2 => array:2 [▶]//element3
        3 => array:2 [▶]//element4
      ]
    ]
    1 => array:5 [▼
      "img_src" => "http://newregalospersonales.dev/./svg/love-gifts.svg"
      "img_alt" => "<span>Regalos</span> románticos"
      "class" => "love-gifts"
      "elements" => array:4 [▼
        0 => array:2 [▶]//element1
        1 => array:2 [▶]//element2
        2 => array:2 [▶]//element3
        3 => array:2 [▶]//element4
      ]
    ]
    2 => array:5 [▼
      "img_src" => "http://newregalospersonales.dev/./svg/regalos-ocasiones-especiales.svg"
      "img_alt" => "<span>Detalles</span><br>de boda"
      "class" => "wedding"
      "elements" => array:4 [▼
        0 => array:2 [▶]//element1
        1 => array:2 [▶]//element2
        2 => array:2 [▶]//element3
        3 => array:2 [▶]//element4
      ]
    ]
  ]
}

我只收到字段'elements'的集合。

我想要一个这样的结果:

Collection {#324 ▼
  #items: array:3 [▼
    0 => array:4 [▼
        0 => array:2 [▶] //element1
        1 => array:2 [▶ //element2 
        2 => array:2 [▶] //element3
        3 => array:2 [▶] //element4
    ]
    1 => array:4 [▼

        0 => array:2 [▶] //element1
        1 => array:2 [▶] //element2
        2 => array:2 [▶] //element3
        3 => array:2 [▶] //element4
    ]
    2 => array:4 [▼

        0 => array:2 [▶] //element1
        1 => array:2 [▶] //element2
        2 => array:2 [▶] //element3
        3 => array:2 [▶] //element4
    ]
  ]
}

有没有办法做到这一点? 我正在使用Laravel 5.3版本,我不知道这种情况下的集合过滤器使用。

3 个答案:

答案 0 :(得分:6)

您可以使用pluck()方法:

$plucked = $collection->pluck('elements');
  

pluck方法检索给定键的所有值。

答案 1 :(得分:2)

查看pluck()方法。

你可以像这样使用它:

$collection->pluck('field');

More about it

答案 2 :(得分:1)

您可以使用laravel的pluck()方法从集合中获取所选的键,如下所示:

$plucked_items = $collection->pluck('elements'); // returns a collection
$plucked_items_arr = $plucked_items->all(); // returns an array

希望这有帮助!