【问题标题】:Laravel 5.4 Collection Map Return ValuesLaravel 5.4 集合映射返回值
【发布时间】:2017-04-08 21:35:53
【问题描述】:

我在使用返回值的集合映射上创建函数时遇到问题。

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


    }

如您所见,返回的 fieldNames[0] 正在被硬编码。我不知道它会收到多少个 fieldNames。我需要返回那些带有混淆 ID 的字段名。所以基本上唯一改变的是Id。这是屏幕截图。

如您所见,fieldNames 只是 2,但如果变为 5 或 6 会怎样。我真的不知道他们将在参数中传递多少个 fieldNames。我该如何退货。谢谢。

【问题讨论】:

    标签: laravel optimus


    【解决方案1】:

    万一有人遇到这个问题。这是我的解决方案...

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

    结果是一样的。太棒了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2017-11-07
      • 2019-04-03
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      相关资源
      最近更新 更多