【问题标题】:how to display data horizontally in single table data using laravel and vue js如何使用laravel和vue js在单表数据中水平显示数据
【发布时间】:2020-07-17 02:28:37
【问题描述】:

我有 2 张桌子 表一

________________
| name_id  name |   
| 1       john  |
| 2      heaven |
|_______________|

表 2

_______________________
| id name_id  product |   
| 1    1         bag  |
| 2    1       shoes  |
|_____________________|

我想这样显示

__________________________
| # | name    |  product  |   
| 1 |  John   | bag,shoes |
| 2 | Heaven  |           |
|___|_________|___________|

我不知道如何在我的控制器中执行此操作 控制器.php

       $data = DB::table('table1')
          ->leftjoin('table2','table2.name_id','=','table1.name_id')
             ->select('table1.*','table2.*')
          ->get();
    
    return $data

这就是我在表格中显示数据的方式

Myvue js

methods:{

  loaddata(){

   axios.get('api/data').then(({data}){
  (this.alldata = data)
})

}

}

【问题讨论】:

    标签: javascript php laravel vue.js


    【解决方案1】:

    您可以尝试使用GROUP_CONCAT

    例如这样:

    DB::table('table1')
    ->leftjoin('table2','table2.name_id','=','table1.name_id')
    ->select('table1.*', DB::raw('GROUP_CONCAT(table2.product SEPARATOR ', ') AS products'))
    ->groupBy('table1.name_id')
    ->get();
    

    【讨论】:

      【解决方案2】:

      您从DB 中漏掉了::table

      DB::('table1') => DB::table('table1')

      $data = DB::table('table1')
                  ->leftJoin('table2', 'table1.name_id', '=', 'table2.name_id')
                  ->select('table1.*', 'table2.*')
                  ->get();
      

      【讨论】:

      • 这和我做的一样
      • DB:: @azakura
      • 哦,我忘了,但问题是我想像在第三张桌子上一样显示它
      猜你喜欢
      • 2020-09-20
      • 2017-03-22
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2015-07-04
      • 2019-05-29
      相关资源
      最近更新 更多