首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Fractal在Json中显示数组?

如何用Fractal在Json中显示数组?
EN

Stack Overflow用户
提问于 2019-10-29 11:52:30
回答 1查看 167关注 0票数 0

我想要将带有数组的REST API数据保存到数据库,它的工作,所有的值都保存到表中,但当我想在json中查看结果时,我仍然得到错误。

这是我的错误

代码语言:javascript
复制
 "message": "Argument 1 passed to App\\Transformers\\NewLoanOfferTransformer::transform() must be an instance of App\\Model\\AntiAttrition, array given, called in /home/insko23/testing.insko.my/vendor/league/fractal/src/Scope.php on line 338",

我的控制器

代码语言:javascript
复制
 public function new_loan_offer(Request $request, AntiAttrition $antiattrition)
    {
         $new = array_map(null, $request->mo_id, $request->id_clrt,$request->TaskID,$request->ACID,$request->CustIDNo);

            foreach($new as $new) {
                $request                  = new AntiAttrition;
                $request->mo_id           = $new[0]; 
                $request->id_clrt         = $new[1];  
                $request->TaskID          = $new[2]; 
                $request->ACID            = $new[3]; 
                $request->CustIDNo        = $new[4]; 
                $request->save();
            }

        $response = fractal()
            ->item($new)
            ->transformWith(new NewLoanOfferTransformer)
            ->toArray();
        return response()->json($response,201);
    }

我的应用\Transformer

代码语言:javascript
复制
<?php

namespace App\Transformers;

use App\Model\AntiAttrition;
use App\Model\SettlementInfo;
use League\Fractal\TransformerAbstract;

class NewLoanOfferTransformer extends TransformerAbstract
{
	public function transform (AntiAttrition $antiattrition)
	{
		return[
			'id' => $antiattrition->id,
			'mo_id'=> $antiattrition->mo_id,
			'assign_by'=> $antiattrition->assigned_by,
			'id_clrt' => $antiattrition->id_clrt,
			'TaskID'=> $antiattrition->TaskID,
			'ACID'=> $antiattrition->ACID,
			'CustIDNo'=> $antiattrition->CustIDNo
		];
	}
}

我想以json格式显示结果,如下所示

代码语言:javascript
复制
{
    "data": [
        {
            "mo_id": "123",
            "id_clrt": "10000000049",
            "ACID": "123",
             .....
        },
        {
            "mo_id": "1234",
            "id_clrt": "10000000045",
            "ACID": "1235",
             .....
        },
        {
            "mo_id": "124",
            "id_clrt": "10000000044",
            "ACID": "1245",
             .....
        },
       ],
}

请帮我解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2020-10-26 01:25:51

在foreach循环中,避免对数组和要迭代的数组元素使用相同的名称,可以将foreach($new as $new)重命名为foreach($newArray as $new),或对代码逻辑使用有意义的名称。此外,使用$new['mo_id']来引用数组的键,而不是使用$new[0]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58601232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档