将数据添加到laravel对象中

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

所以我的用户控制器有这种类

public function index()
    {
        $table_data = User::with('CU','pus')->select('id','id_cu','id_pus','name','username','gambar','status','created_at')->filterPaginateOrder();

        return response()
            ->json([
                'model' => $table_data
            ]);
    }

它使用了名为filterPaginateOrder的特性,我得到的最终结果是:

{
  "model": {
    "current_page": 1,
    "data": [
      {
        "id": 8,
        "id_cu": 0,
        "id_pus": 1,
        "name": "test1",
        "username": "test17",
        "gambar": "",
        "status": 1,
        "created_at": "2018-02-27 06:37:10",
        "c_u": null,
        "pus": {
          "id": 1,
          "name": "Puskopdit BKCU Kalimantan"
        }
      },
      {
        "id": 1,
        "id_cu": 0,
        "id_pus": 1,
        "name": "tony",
        "username": "t0n1zz",
        "gambar": null,
        "status": 1,
        "created_at": "2017-01-01 11:11:11",
        "c_u": null,
        "pus": {
          "id": 1,
          "name": "Puskopdit BKCU Kalimantan"
        }
      }
    ],
    "from": 1,
    "last_page": 1,
    "next_page_url": null,
    "path": "https://bkcuvue.dev/api/v1/user",
    "per_page": "2",
    "prev_page_url": null,
    "to": 2,
    "total": 2
  }
}

那么如果我想在其中添加一些数据呢?在data数组内为每个数组我想添加"role":"master"我该怎么做?

我尝试了$table_data->push('role','master')$table_data->put('role','master')阅读关于集合(laravel返回集合中的那些查询对吗?)但这些代码都没有工作......

php laravel laravel-5
2个回答
1
投票

有两种方法可以解决它。

通过foreach添加它

$table_data = User::with('CU','pus')->select('id','id_cu','id_pus','name','username','gambar','status','created_at')->filterPaginateOrder();

foreach($table_data->data as $data) {
      $data->role = 'master';
}

或者将其添加到SELECT中:

$table_data = User::with('CU','pus')->select('id','id_cu','id_pus','name','username','gambar','status','created_at', DB::raw('"master" as role'))->filterPaginateOrder();

0
投票

或者您可以覆盖paginator对象的集合数据。

$table_data = User::with('CU','pus')->select('id','id_cu','id_pus','name','username','gambar','status','created_at')->filterPaginateOrder();
$table_data->getCollection()->each(function($user) {
    $user->role = 'master';
});

return response()->json([
    'model' => $table_data
]);
© www.soinside.com 2019 - 2024. All rights reserved.