PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.3.26
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.3.26
1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 All 49 releases
fluent-cart / vendor / wpfluent / framework / src / WPFluent / Database / Orm / Searchable.php

Searchable.php in FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler 1.3.26, at vendor/wpfluent/framework/src/WPFluent/Database/Orm/Searchable.php

43 lines 1012 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentCart\Framework\Database\Orm;
4
5 use Exception;
6
7 trait Searchable
8 {
9 /**
10 * Searchable columns.
11 *
12 * @var array
13 */
14 protected $searchableColumns = [];
15
16 /**
17 * Search the model in a case-insensitive manner.
18 *
19 * @param \FluentCart\Framework\Database\Orm\Builder $query
20 * @param string $value
21 * @return \FluentCart\Framework\Database\Orm\Builder
22 * @throws \Exception
23 */
24 public function scopeSearch($query, $value)
25 {
26 if (empty($this->searchableColumns)) {
27 throw new Exception(
28 'No searchable columns were defined in ' . get_class($this) . '.'
29 );
30 }
31
32 $value = strtolower($value);
33
34 return $query->where(function($query) use ($value) {
35 foreach ($this->searchableColumns as $column) {
36 $query->orWhereRaw(
37 'LOWER(' . $column . ') LIKE ?', ['%' . $value . '%']
38 );
39 }
40 });
41 }
42 }
43