I am trying to get data from a mongodb database using Jenssengers Laravel MongoDB package but constantly hits an error.
Type error: Argument 1 passed to Illuminate\Database\Query\Builder::setBindings() must be of the type array, object given, called in /vendor/yajra/laravel-datatables-oracle/src/QueryDataTable.php on line 135 in vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2291
$store = Store::where('user_id', Auth::user()->id)->first();
$query = Product::with(['branch'])->where('store_id', '=', $store->id);
return datatables()->eloquent($query)->toJson();
Ubuntu 16.04 LTS
PHP 7.1
Laravel 5.4
DataTables 8.0
I redefined \Yajra\DataTables\EloquentDataTable :
namespace App\DataTables;
use Jenssegers\Mongodb\Eloquent\Builder;
class EloquentDataTable extends \Yajra\DataTables\EloquentDataTable
{
public function count()
{
/** @var Builder $builder */
$builder = $this->prepareCountQuery();
$table = $this->connection->raw('(' . $builder->toSql() . ') count_row_table');
return $this->connection->table($table)
->setBindings($builder->getQuery()->getBindings())
->count();
}
}
Solved
above solution solved my issue. my code >
<?php
namespace YajraDataTables;
use JenssegersMongodbEloquentBuilder;
//use IlluminateDatabaseEloquentBuilder;
use YajraDataTablesExceptionsException;
use IlluminateDatabaseEloquentRelationsRelation;
use IlluminateDatabaseEloquentRelationsBelongsTo;
use IlluminateDatabaseEloquentRelationsHasOneOrMany;
use IlluminateDatabaseEloquentRelationsBelongsToMany;
class EloquentDataTable extends QueryDataTable
{
public function count()
{
/** @var Builder $builder */
$builder = $this->prepareCountQuery();
$table = $this->connection->raw('(' . $builder->toSql() . ') count_row_table');
return $this->connection->table($table)
->setBindings($builder->getQuery()->getBindings())
->count();
}
}``
features doesn't work . cant sort or search with mongodb only
Most helpful comment
I redefined
\Yajra\DataTables\EloquentDataTable: