where($field, 'LIKE', "%$keyword%"); } else { $query->orWhere($field, 'LIKE', "%$keyword%"); } } }); } /** * Get all searchable fields * * @return array */ public static function getSearchableFields() { $model = new static; $fields = $model->search; if (empty($fields)) { $fields = Schema::getColumnListing($model->getTable()); $ignoredColumns = [ $model->getKeyName(), $model->getUpdatedAtColumn(), $model->getCreatedAtColumn(), ]; if (method_exists($model, 'getDeletedAtColumn')) { $ignoredColumns[] = $model->getDeletedAtColumn(); } $fields = array_diff($fields, $model->getHidden(), $ignoredColumns); } return $fields; } }