如何从多个数据源创建“ yajra / laravel-datatables”?在这里,我想显示来自不同数据库的多个表。
$data1 = DB::table('schema1.post AS p')
->leftJoin('user AS u','u.id','=','p.user_id')
->select('p.*','u.*')
->get();
$data2 = DB::table('schema2.page AS page')
->leftJoin('user AS u','u.id','=','page.user_id')
->select('page.*','u.*')
->get();
return Datatables::of($data)
->addIndexColumn()
->make(true);
在这里,我对如何将2个变量传递到数据表感到困惑? 这是我的脚本。
var option = $("#Options").DataTable({
processing: true,
serverSide: false,
ajax: "{{route('option')}}",
columns: [
{
data: "user_name",
name: "user_name",
},
{
data: "type",
name: "type",
},
{
data: "description",
name: "description",
},
});
答案 0 :(得分:1)
您可以使用Eloquent的-> union()方法:
$data1 = DB::table('schema1.post AS p')
->leftJoin('user AS u','u.id','=','p.user_id')
->select('p.*','u.*')
->get();
$data2 = DB::table('schema2.page AS page')
->leftJoin('user AS u','u.id','=','page.user_id')
->select('page.*','u.*')
->union($data1)
->get();
return Datatables::of($data2)
->addIndexColumn()
->make(true);
确保在Datatables :: of方法中使用正确的$ data2变量。