从FuelPHP迁移到Laravel:一个响应的问题

问题描述 投票:0回答:1

我正在将一个旧项目从燃料迁移到laravel,而我对其中一个请求的响应有问题。问题是,我需要laravel的响应与燃料中的响应完全相同,因为我已经在iOS和Android中拥有应用程序并且具有相同的响应意味着我只需要更改端点。我似乎无法复制这里的回复:

  • FuelPHP代码和响应: $belongs = Model_Belong::find('all',array( 'where'=>array( array('id_user',$id_user), ), )); return $this->createResponse(200, 'List', $belongs); *****RESPONSE**** { "code": 200, "message": "List", "data": { "[1][1]": { "id_user": 1, "id_group": 1 }, "[1][2]": { "id_user": 1, "id_group": 2 }, "[1][3]": { "id_user": 1, "id_group": 3 } } }
  • Laravel代码和响应: $belongs = Belong::where('id_user', $id_user) ->get(); return $this->createResponse(200, 'List', $belongs); *****RESPONSE***** { "code": 200, "message": "List", "data": [ { "id_user": 1, "id_group": 1, }, { "id_user": 1, "id_group": 2, }, { "id_user": 1, "id_group": 3, } ] }

***编辑:createResponse()方法

    function createResponse($code, $message, $data = [])
{
    if ($data == null) {
       $data = (object)[];
    }
    return response()->json([
        'code' => $code,
        'message' => $message,
        'data' => $data
    ]);

}
php laravel-5 eloquent laravel-query-builder fuelphp
1个回答
1
投票

我认为一个hacky解决方案可以通过sql生成自己的密钥并使用KeyBy()检索它,如下所示:

Belong::select([
        'id_user',
        'id_group', 
        DB::raw("CONCAT('[', id_user, '][', id_group, ']') as mykey")
    ])
    ->where('id_user', $id_user)
    ->get()
    ->keyBy('mykey');
© www.soinside.com 2019 - 2024. All rights reserved.