Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.4集合映射返回值_Laravel_Optimus - Fatal编程技术网

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);


    }
结果是一样的。太棒了