使用Yajra数据表的控制器总和

时间:2019-07-03 18:08:51

标签: mysql ajax laravel datatables

我试图将控制器中不同MySQL表中的两个值求和,然后将结果放入数据表中。

调用控制器的脚本

  <script>
    $(document).ready(function(){

    var tabla1 = $('#art_table').DataTable({
        "language": {
                    "url": "//cdn.datatables.net/plug-ins/1.10.19/i18n/Spanish.json"
                },
    processing: true,
    serverSide: true,
    ajax:{
        url: "{{ route('ordenes.index') }}"},
        columns:[
            {
                data: 'nombre_art',
                name: 'nombre_art'
            },

            {
                data: 'cantidad',
                name: 'cantidad'
            }
        ]
    });
});
</script>

控制器中的代码

public function index()
{
    if(request()->ajax())
    {
        $query = DB::table('orden_entrada_art')->select('*');
        return datatables()->of($query)
        //return datatables()->of(articulos::latest()->get())
                ->addIndexColumn()
                ->addColumn('cantidad', function($tot){
                    $tot = DB::table('orden_entrada_art')
                    ->select(DB::raw("SUM(orden_entrada_art.cantidad) + SUM(orden_salida_art.cantidad) AS cantidad"))
                    ->join('orden_salida_art', 'orden_entrada_art.nombre_art', '=', 'orden_salida_art.nombre_art')   // ESTE SELECT
                    ->where('orden_salida_art.nombre_art','=',$tot->nombre_art)
                    ->groupBy('orden_entrada_art.nombre_art')
                    ->orderByRaw('orden_entrada_art.nombre_art')
                    ->get();
                    $t = $tot[0]->cantidad;  // array solo agarra el id del select de arriba
                    return $t;
                })
                ->make(true);
            }

    $arts = DB::table('articulos')->get();

    return view('ordenes.ordenes',['arts'=>$arts]);

}

我希望输出结果是来自不同MySQL表的两个字段之间相减的结果

0 个答案:

没有答案