【问题标题】:Split a column into three column将一列拆分为三列
【发布时间】:2019-08-29 07:40:17
【问题描述】:

我想将从数据库中提取的单个列分为三个不同的列。
下面的代码给了我一列 image_url。

public function fetch() 
    {
        $model = Image::select('image_url');
        return Datatables::eloquent($model)->make(true);
    }

我想在返回之前将此列拆分为三列。
至于现在它以这种形式返回..

{
 "draw": 0,
 "recordsTotal": 16,
 "recordsFiltered": 16,
 "data": [
     {
      "image_url": "public/uploaded_images/2019_08_27_WheatMaizeBanner_1.png"
     },
     {
      "image_url": "public/uploaded_images/2019_08_27_WheatFlourBanner1.jpg"
     },
     {
      "image_url": "public/uploaded_images/2019_08_27_TurDalBanner1.jpg"
     },
     {
      "image_url": "public/uploaded_images/2019_08_27_TurBanner1.png"
     }
   ]
}

但我想要这样的东西

{
 "draw": 0,
 "recordsTotal": 16,
 "recordsFiltered": 16,
 "data": [
   {
    "image1": "public/uploaded_images/2019_08_27_WheatMaizeBanner_1.png",
    "image2": "public/uploaded_images/2019_08_27_WheatFlourBanner1.jpg"
    "image3": "public/uploaded_images/2019_08_27_TurBanner1.png"
   }
  ]
}

【问题讨论】:

  • 使用pluck() 而不是select()

标签: php laravel yajra-datatable


【解决方案1】:

试试这个:

public function fetch() 
    {
        $model = Image::select('image_url');
        $result = Datatables::eloquent($model)->make(true);
        $data = [];
        foreach($result->data as $i => $record) {
            $data['image' . ($i+1)] = $record->image_url;
        }
        $result->data = [ (object)$data ];
        return $result
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多