Edit File: BaseModelScope.php
<?php namespace App\Models\Scopes; use Illuminate\Support\Facades\Schema; trait BaseModelScope { public function scopeSearch($query, $searchArray = []) { $query->where(function ($query) use ($searchArray) { if ($searchArray) { foreach ($searchArray as $key => $value) { if (str_contains($key, '_id')) { if (null != $value) { $query->Where($key, $value); } } elseif ('order' == $key) { } elseif ('created_at_min' == $key) { if (null != $value) { $query->WhereDate('created_at', '>=', $value); } } elseif ('created_at_max' == $key) { if (null != $value) { $query->WhereDate('created_at', '<=', $value); } } else { if (str_contains($key, '->')) { list($relationship, $field) = explode('->', $key); if (method_exists($this, $relationship)) { $query->whereHas($relationship, function ($query) use ($field, $value) { $query->where($field, 'like', '%' . $value . '%'); }); } } else { if (Schema::hasColumn($this->getTable(), $key)) { $query->Where($key, 'like', '%' . $value . '%'); } } } } } }); return $query->orderBy('created_at', request()->searchArray && request()->searchArray['order'] ? request()->searchArray['order'] : 'DESC'); } public function scopeActive() { return $this->where('is_active', true); } }
Back to File Manager