Completed
Pull Request — master (#1)
by Angel
07:01
created

FieldRuleProperty::attributeLabels()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 7
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace roaresearch\yii2\formgenerator\models;
4
5
use yii\db\ActiveQuery;
6
7
/**
8
 * Model class for table `{{%formgenerator_field_rule_property}}`
9
 *
10
 * @property integer $rule_id
11
 * @property string $property
12
 * @property string $value
13
 *
14
 * @property FieldRule $rule
15
 */
16
class FieldRuleProperty extends \roaresearch\yii2\rmdb\models\Entity
17
{
18
    /**
19
     * @var string full class name of the model used in the relation
20
     * `getRules()`.
21
     */
22
    protected $ruleClass = FieldRule::class;
23
24
    /**
25
     * @inheritdoc
26
     */
27 9
    public static function tableName()
28
    {
29 9
        return '{{%formgenerator_field_rule_property}}';
30
    }
31
32
    /**
33
     * @inheritdoc
34
     */
35 7
    protected function attributeTypecast(): array
36
    {
37 7
        return parent::attributeTypecast() + ['rule_id' => 'integer'];
38
    }
39
40
    /**
41
     * @inheritdoc
42
     */
43 2
    public function rules()
44
    {
45
        return [
46 2
            [['rule_id', 'property', 'value'], 'required'],
47
            [['rule_id'], 'integer'],
48
            [
49
                ['rule_id'],
50
                'exist',
51
                'skipOnError' => true,
52
                'targetClass' => FieldRule::class,
53
                'targetAttribute' => ['rule_id' => 'id'],
54
            ],
55
            [['property', 'value'], 'trim'],
56
            [['property', 'value'], 'string'],
57
            [
58
                ['property'],
59
                'unique',
60
                'targetAttribute' => ['rule_id', 'property'],
61
                'message' => 'Property already in use for this rule.',
62
            ],
63
        ];
64
    }
65
66
    /**
67
     * @inheritdoc
68
     */
69 2
    public function attributeLabels()
70
    {
71 2
        return array_merge([
72 2
            'rule_id' => 'Rule ID',
73
            'property' => 'Property',
74
            'value' => 'Value',
75 2
        ], parent::attributeLabels());
76
    }
77
78
    /**
79
     * @return ActiveQuery
80
     */
81 7
    public function getRule(): ActiveQuery
82
    {
83 7
        return $this->hasOne($this->ruleClass, ['id' => 'rule_id']);
84
    }
85
}
86