Passed
Pull Request — master (#273)
by
unknown
03:12
created

CustomerForArrayable::setItem()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 1
c 1
b 0
f 1
dl 0
loc 2
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord;
6
7
use Yiisoft\ActiveRecord\ActiveRecord;
8
9
/**
10
 * Class CustomerClosureField.
11
 *
12
 * @property int $id
13
 * @property string $name
14
 * @property string $email
15
 * @property string $address
16
 * @property int $status
17
 */
18
class CustomerForArrayable extends ActiveRecord
19
{
20
    public array $items = [];
21
22
    public ?CustomerForArrayable $item = null;
23
24
    public function getTableName(): string
25
    {
26
        return 'customer';
27
    }
28
29
    public function fields(): array
30
    {
31
        $fields = parent::fields();
32
33
        $fields['item'] = 'item';
34
        $fields['items'] = 'items';
35
36
        return $fields;
37
    }
38
39
    public function setItem(CustomerForArrayable $item) {
40
        $this->item = $item;
41
    }
42
43
    public function setItems(CustomerForArrayable ...$items)
44
    {
45
        $this->items = $items;
46
    }
47
48
    public function toArray(array $fields = [], array $expand = [], bool $recursive = true): array
49
    {
50
        $data = parent::toArray($fields, $expand, $recursive);
51
52
        $data['status'] = $this->status == 1 ? 'active' : 'inactive';
53
54
        return $data;
55
    }
56
}
57