代码之家  ›  专栏  ›  技术社区  ›  Azuren

在转换为JSON之前,如何向数组中添加新的键和值?

  •  0
  • Azuren  · 技术社区  · 2 年前

    在将数组转换为json之前,如何在每个循环中向数组添加额外的键和值?

    我的样本当前数组

    $results:

    array:97 [
     0 => {#1
      +"username": "azura"
      +"gem": "emerald"
      +"color": null
     }
    
     1 => {#2
      +"username": "azuren"
      +"gem": "ruby"
      +"color": "red"
     }
    ...]
    

    添加后的预期数组。我想注射一个用绳子做的按钮。

     0 => {#1
      +"username": "azura"
      +"gem": "emerald"
      +"color": null
      +"action": "<button id="edit" class="edit-btn></button>
                  <button id="remove" class="delete-btn">Delete</button>"
     }
    
     1 => {#2
      +"username": "anngeetan"
      +"gem": "ruby"
      +"color": "red"
      +"action": "<button id="edit" class="edit-btn></button>
                  <button id="remove" class="delete-btn">Delete</button>"
     }
    ...]
    

    然后在我的larvel php上,我会将其转换为DataTables Json,以便将新的“action”项容纳到我的js中

    我的js

    $('#mytable').DataTable({
     columns: [
         'data': 'azuren',
         'data': 'gem',
         'data': 'color',
         'data': 'action',
     ]
    }):
    

    我的php控制器

    public function get_table(Request $request)
    {
        $table = $request['selected-table'];
        $results = DB::select("SELECT * from $table");
        
        //add the 'action' item somewhere here.
    
        return datatables($results)->make(true);
    }
    

    PS:如果有更好的方法或者优化效果不好,请随意推荐一种新方法(我还有一个包含20000个条目的数组)。

    1 回复  |  直到 2 年前
        1
  •  3
  •   Noman Saleem    2 年前

    你可以这样做

    https://yajrabox.com/docs/laravel-datatables/master/add-column

    $table = $request['selected-table'];
    $results = DB::select("SELECT * from $table");
    
     return datatables($results)
         ->addColumn('action', function ($row) { // added action key 
              return "<button id='edit' class='edit-btn'></button>
                     <button id='remove' class='delete-btn'>Delete</button>";
         })->make(true);