1. Go to this page and download the library: Download plokko/resource-query library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
plokko / resource-query example snippets
use plokko\ResourceQuery\ResourceQuery;
class ExampleResourceQuery extends ResourceQuery{
protected function getQuery():Builder {
// Return the base query
return MyModel::select('id','a','b')
->where('fixed_condition',1);
}
}
use plokko\ResourceQuery\ResourceQueryBuilder;
$query = MyModel::select('id','etc');
//Add the base query
$resource = new ResourceQueryBuilder($query);
class MyController extends Controller {
//...
public function example1(Request $request){
$resource = new ExampleResourceQuery();
if($request->ajax()){
return $resource;
}
view('example',compact('resource'));
}
public function example2(Request $request){
$query = MyModel::select('id','etc');
$resource = new ResourceQueryBuilder($query);
if($request->ajax()){
return $resource;
}
view('example',compact('resource'));
}
//...
}
// With the add function (default)
$resource->filters->add(<FILTER_NAME:string>,[<CONDITION:string|callable>],[<FIELD_NAME:string>]);
// Called as a parameter
$resource->filters-><FILTER_NAME>;
// Accessed as an array
$resource->filters['<FILTER_NAME>'];
// Called as a function
$resource->filters-><FILTER_NAME>([<CONDITION:string|callable>],[<FIELD_NAME:string>]);
class MyClassResource extends ResourceQuery{
//...
function __construct() {
//Remember to call parent constructor for inizialization
parent::__construct();
// Adding filters
$this->filter('filter1','=','fieldA');
$this->filter('filter2','like','fieldB');
//...
}
//...
}
$query = MyModel::select('id','etc');
$resource = new ResourceQueryBuilder($query);
// Note: this works also with already defined classes by adding or replacing existing filters
// Ex. replace lines above with: $resource = new ExampleResourceQuery();
$resource->filters->add('filter1','=','fieldA');
$resource->filters->add('filter2','like','fieldB');
$resource->setFiltersRoot('filter');//<-- 'filter' will be used as the root query parameter
class ExampleResourceQuery extends ResourceQuery{
protected $filtersRoot = 'filter';
//...
}
$resource->filters->add('filter1','=','fieldA')->defaultValue('1234');//If filter "filter1" is not set it will be applied with value "123"
$resource->filters->add('filter1','=','fieldA');
$resource->filters->add('filter2','like','fieldB');
// If fitler1 or filter2 are empty fitler3 will be ignored
$resource->filters->add('filter3','=','fieldC')->applyIfPresent('filter1','filter2');
$resource->filters->add('filter1','=','fieldA');
$resource->filters->add('filter2','like','fieldB');
// If fitler1 or filter2 are not empty fitler3 will be ignored
$resource->filters->add('filter3','=','fieldC')->applyIfNotPresent('filter1','filter2');
class MyController extends Controller {
//...
function testPage(Request $request){
$resource = new UserResourceQuery();
//...add filters, etc.
// if it's an Ajax resource return the resource directly
if($request->ajax()){
return $resource;
}
// Or else return the HTML page
return view('mypage');
}
//...
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.