PluginProbe
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses / 2.6.01
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses v2.6.01
2.11.0 2.10.0 2.10.01 2.9.1 2.9.0 2.8.1 2.8.0 2.7.7 2.7.5 2.7.0 2.6.01 2.6.0 2.5.0 2.4.01 trunk 1.0.90 1.0.91 1.0.92 1.0.93 1.0.94 1.0.95 1.0.96 1.0.97 1.0.98 1.0.99 All 78 releases
fluent-community / vendor / wpfluent / framework / src / WPFluent / Database / Orm / Searchable.php

Searchable.php in FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses 2.6.01, at vendor/wpfluent/framework/src/WPFluent/Database/Orm/Searchable.php

43 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentCommunity\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 \FluentCommunity\Framework\Database\Orm\Builder $query
20 * @param string $value
21 * @return \FluentCommunity\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