Reputation: 274
How to create 'yajra/laravel-datatables' from multiple data sources? Here I want to display multiple tables from different databases.
$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);
Here I am confused about how to pass 2 variables to Datatables? Here is my script.
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",
},
});
Upvotes: 1
Views: 3772
Reputation: 849
You can use the ->union() method of Eloquent :
$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);
Make sure you are using the proper $data2 var in the Datatables::of method.
Upvotes: 2