Laravel 5.4集合映射返回值
在集合映射上创建带有返回值的函数时遇到问题Laravel 5.4集合映射返回值,laravel,optimus,Laravel,Optimus,在集合映射上创建带有返回值的函数时遇到问题 public function getCollectionFakeId($collection, $fieldNames){ $optimus = $this->optimus; $result = $collection->map(function($item, $key) use ($optimus, $fieldNames) { return [
public function getCollectionFakeId($collection, $fieldNames){
$optimus = $this->optimus;
$result = $collection->map(function($item, $key) use ($optimus, $fieldNames) {
return [
$fieldNames[0] =>$optimus->encode($item->id),
$fieldNames[1] => $item->lastname
];
}) ;
dd($result);
return json_decode(json_encode($result), FALSE);
}
如您所见,返回字段名[0]正在硬编码。我不知道它会收到多少字段名。我需要返回那些带有模糊Id的字段名。因此,基本上唯一更改的是Id。这是屏幕截图
如您所见,字段名仅为2,但如果它变为5或6会怎么样。我真的不知道他们将在参数中传递多少字段名。我怎样才能退呢。谢谢。以防有人遇到此问题。这是我的解决方案
public function getCollectionFakeId($collection, $fieldNames){
$optimus = $this->optimus;
$result = $collection->map(function($item, $key) use ($optimus, $fieldNames) {
$mapFieldNames = array_map(function($v) use ($optimus, $item) {
if( $v == 'id'){
return $optimus->encode($item->id);
}
else{
return $v;
}
}, $fieldNames);
return $mapFieldNames;
}) ;
dd($result);
return json_decode(json_encode($result), FALSE);
}
结果是一样的。太棒了