-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Hi,
edit: Just realised this question is probably in the wrong package so have re-created here: leroy-merlin-br/mongolid-laravel#154
Please close/delete if this is the wrong place - sorry
Just discovered this project and am interested to see how it performs against laravel-mongodb
to do this we have lots of legacy laravel model builder methods that will need to have equivalents. I'm happy to write the overrides but need some pointers on getting started.
for example to use livewire-datatables a builder needs to be returned from an example query of:
public function query()
{
return Order::query()
->when($this->getFilter('search'), function($query, $term){
$query = $query->search((string)$term);
$query = $query->searchCustomer((string)$term);
$query = $query->searchExtras((string)$term);
return $query;
})
->when($this->getFilter('status'), fn($query, $status) => $query->statusSearch((int)$status))
->whereNull(Order::CANCELLED_AT)
->orderBy(Order::CREATED_AT, 'desc');
}then later in code, it calls
$query->paginate();to return a LAP object.
So in this instance I need to create new methods for query(), when() , whereNull() , OrderBy() and paginate() which (I assume) will be via an extended Query/Builder.php (??) class
is this viable? is there a better way of handling this?
my start point was to override the MongolidModel with something like:
namespace App\Models\Overrides\Mongolid;
use MongolidLaravel\MongolidModel as BaseMongolidModel;
class MongolidModel extends BaseMongolidModel
{
public static function query() {
// return (new static())->getLocalMock();
return Container::make(Builder::class);
}
}what would you suggest I return in the initial ->query() call? :-)
thanks in advance for any help.