PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.1.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.1.0
2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 1.41 All 42 releases
fluent-boards / vendor / wpfluent / framework / src / WPFluent / Database / Orm / Searchable.php

Searchable.php in FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration 2.1.0, at vendor/wpfluent/framework/src/WPFluent/Database/Orm/Searchable.php

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