A Library for parsing search query parameters
, (*1)
When a Model from php-platform/persist is exposed as REST Resource (php-platform/restful), It is required that the REST End point to list all resources must support filter , sort and pagination, (*2)
Models extending php-platform/persist supports filter , sort and pagination through arguments to PhpPlatform\Persist\Model::find($filters,$sort,$pagination,$where) method, (*3)
So this library parses query parameters from rest endpoint to method arguments required by PhpPlatform\Persist\Model::find($filters,$sort,$pagination,$where)
, (*4)
How to use
php
$searchParams = PhpPlatform\SearchQueryParser\Parser::parse(PhpPlatform\RESTFul\HTTPRequest $request,string $modelClassName, array $excludeFromFullTextSearch);
, (*5)
where
-
$request is the HTTPRequest object received in the rest service
-
$modelClassName is the full name of the Model which is served as REST Resource
-
$excludeFromFullTextSearch is the array of fields which needs to be excluded from performing full text search
returns
An instance of PhpPlatform\SearchQueryParser\FindParams
, (*6)
Parse rules
Query Param |
Method Parameter |
Format |
q |
$where |
string for full text search , a complex $where expression is formed matching all the get fields from the Model , excluding the once mentioned in $excludeFromFullTextSearch . Auto Increment fields are excluded by default |
f |
$filters |
base64 encoded json string representing the $filters object |
s |
$sort |
base64 encoded json string representing the $sort object |
p |
$pagination |
'<pageNumber>-<pageSize>' |
Note 1 : This API throws PhpPlatform\Errors\Exceptions\Http\_4XX\BadRequest
Exception if the query parameters are invalid
Note 2 : All of the above query parameters are optional, (*7)