EActiveDataFilter   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A init() 0 21 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Yarmaliuk Mikhail
5
 * Date: 22.03.18
6
 * Time: 22:28
7
 */
8
9
namespace MP\ExtendedApi;
10
11
use yii\data\ActiveDataFilter;
12
use yii\data\DataFilter;
13
use yii\db\Expression;
14
15
/**
16
 * Class    EActiveDataFilter
17
 * @package MP\ExtendedApi
18
 * @author  Yarmaliuk Mikhail
19
 * @version 1.0
20
 */
21
class EActiveDataFilter extends ActiveDataFilter
22
{
23
    /**
24
     * @inheritdoc
25
     */
26
    public function init(): void
27
    {
28
        parent::init();
29
30
        $conditionBuilders = [
31
            'LIKE LOWER' => function (string $operator, $condition, string $attribute) {
32
                return ['LIKE', "LOWER($attribute)", new Expression("LOWER('$condition')"), false];
33
            },
34
        ];
35
36
        $filterControls = [
37
            'like lower' => 'LIKE LOWER',
38
        ];
39
40
        $operatorTypes = [
41
            'LIKE LOWER' => [DataFilter::TYPE_STRING],
42
        ];
43
44
        $this->conditionBuilders = array_merge($this->conditionBuilders, $conditionBuilders);
45
        $this->filterControls    = array_merge($this->filterControls, $filterControls);
46
        $this->operatorTypes     = array_merge($this->operatorTypes, $operatorTypes);
47
    }
48
}
49