簡體   English   中英

將數據添加到laravel對象

[英]Add data into laravel object

所以我的用戶控制器上有此類

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數組的內部data數組中添加"role":"master" ,我該怎么做?

我從閱讀有關集合的內容(laravel中的查詢返回集合對嗎?)嘗試了$table_data->push('role','master')$table_data->put('role','master') ,但是沒有這些代碼工作...

有兩種解決方法。

通過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();

或者,您可以覆蓋分頁器對象的收集數據。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM