|
@@ -94,7 +94,7 @@ class Controller extends BaseController
|
|
|
* @param Request $request
|
|
* @param Request $request
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
- protected function setSortAndOrderBy(Model $model, Request $request)
|
|
|
|
|
|
|
+ protected function setSortAndOrderBy(Model $model, Request $request): void
|
|
|
{
|
|
{
|
|
|
// ------- setup sort and order --------------------------------------------------------------------------------
|
|
// ------- setup sort and order --------------------------------------------------------------------------------
|
|
|
$this->data['sortBy'] = (!empty($request->sortBy))
|
|
$this->data['sortBy'] = (!empty($request->sortBy))
|
|
@@ -116,7 +116,7 @@ class Controller extends BaseController
|
|
|
* @param Request $request
|
|
* @param Request $request
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
- protected function acceptFilters(Builder $query, Request $request)
|
|
|
|
|
|
|
+ protected function acceptFilters(Builder $query, Request $request): void
|
|
|
{
|
|
{
|
|
|
// accept filters
|
|
// accept filters
|
|
|
if(!empty($request->filters) && is_array($request->filters)) {
|
|
if(!empty($request->filters) && is_array($request->filters)) {
|
|
@@ -149,7 +149,7 @@ class Controller extends BaseController
|
|
|
* @param Request $request
|
|
* @param Request $request
|
|
|
* @return void
|
|
* @return void
|
|
|
*/
|
|
*/
|
|
|
- protected function acceptSearch(Builder $query, Request $request)
|
|
|
|
|
|
|
+ protected function acceptSearch(Builder $query, Request $request): void
|
|
|
{
|
|
{
|
|
|
// accept search
|
|
// accept search
|
|
|
if(!empty($request->s)) {
|
|
if(!empty($request->s)) {
|
|
@@ -157,7 +157,14 @@ class Controller extends BaseController
|
|
|
$searchFields = $this->data['searchFields'];
|
|
$searchFields = $this->data['searchFields'];
|
|
|
$query->where(function ($query) use ($searchFields, $s) {
|
|
$query->where(function ($query) use ($searchFields, $s) {
|
|
|
foreach ($searchFields as $searchField) {
|
|
foreach ($searchFields as $searchField) {
|
|
|
- $query->orWhere($searchField, 'LIKE', '%' . $s . '%');
|
|
|
|
|
|
|
+ if(Str::contains($searchField, '-')) {
|
|
|
|
|
+ list($relation, $column) = explode('-', $searchField);
|
|
|
|
|
+ $query->orWhereHas($relation, function ($query) use ($s, $column) {
|
|
|
|
|
+ $query->where($column, 'LIKE', "%{$s}%");
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $query->orWhere($searchField, 'LIKE', '%' . $s . '%');
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|