Laravel DataTables plugin to support Laravel Mongodb
This package is a plugin for Laravel DataTables to support Mongodb using Laravel Mongodb
This plugin provides most functionalities described in the Laravel Datatables documentation. See Known issues below
composer require pimlie/laravel-datatables-mongodb:^1.1
Check the Laravel DataTables configuration for how to configure and use it.
If you want the datables() and/or of methods to automatically use the correct datatables engine,
Unfortunately we cant use auto-discovery yet, this package will be discoverd before laravel-datatables is and that will overwrite the engines config at the moment
> Although this package has a dependency on laravel-datatables, you need to explictly require the package as auto-discovery works based on the packages listed in the dependencies section of your composer.json.
composer require yajra/laravel-datatables-oracle:"~8.0"
composer require pimlie/laravel-datatables-mongodb:^1.1
so you either you have to add the service provide:
'providers' => [
...,
Yajra\DataTables\DataTablesServiceProvider::class,
Pimlie\DataTables\MongodbDataTablesServiceProvider::class, // add _after_ Yajra's ServiceProvider
]
undefinedor open the config/datatables.php file and add the engines manually to the config:
/**
* Datatables list of available engines.
* This is where you can register your custom datatables engine.
*/
'engines' => [
// The Jenssegers\Mongodb classes extend the default Query/Eloquent classes
// thus the engines need to be listed above the default engines
// to make sure they are tried first
'moloquent' => Pimlie\DataTables\MongodbDataTable::class,
'mongodb-query' => Pimlie\DataTables\MongodbQueryDataTable::class,
'mongodb-hybrid' => Pimlie\DataTables\HybridMongodbQueryDataTable::class,
'eloquent' => Yajra\DataTables\EloquentDataTable::class,
'query-builder' => Yajra\DataTables\QueryDataTable::class,
'collection' => Yajra\DataTables\CollectionDataTable::class,
],
/**
* Datatables accepted builder to engine mapping.
* This is where you can override which engine a builder should use
* Note, only change this if you know what you are doing!
*/
'builders' => [
//Jenssegers\Mongodb\Eloquent\Builder::class => 'moloquent',
//Jenssegers\Mongodb\Query\Builder::class => 'mongodb-query',
//Jenssegers\Mongodb\Helpers\EloquentBuilder::class => 'eloquent',
//Illuminate\Database\Eloquent\Relations\Relation::class => 'eloquent',
//Illuminate\Database\Eloquent\Builder::class => 'eloquent',
//Illuminate\Database\Query\Builder::class => 'query',
//Illuminate\Support\Collection::class => 'collection',
],
datatables() methodFor this to work you need to have the class definitions added to the engines and builders datatables configuration, see above.
use \App\MyMongodbModel;
$datatables = datatables(MyMongodbModel::all());
use Pimlie\DataTables\MongodbDataTable;
return (new MongodbDataTable(App\User::where('id', '>', 1))->toJson()
MongodbDataTableTrait trait to your model.use Jenssegers\Mongodb\Eloquent\Model;
use Pimlie\DataTables\Traits\MongodbDataTableTrait;
class User extends Model
{
use MongodbDataTableTrait;
}
Route::get('users/data', function() {
return User::dataTable()->toJson();
});
orderColumn and orderColumns methods are empty placeholders and do nothinguser.posts column key)We use cookies
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.