Test Failed
Pull Request — master (#1)
by Angel
04:13
created

Form::tableName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 0
cp 0
crap 2
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_form}}`
9
 *
10
 * @property int $id
11
 * @property string $name
12
 * @property int $created_by
13
 * @property string $created_at
14
 * @property int $updated_by
15
 * @property string $updated_at
16
 *
17
 * @property Section[] $sections
18
 */
19
class Form extends \roaresearch\yii2\rmdb\models\Entity
20
{
21
    /**
22
     * @var string full class name of the model used in the relation
23
     * `getSections()`.
24
     */
25
    protected $sectionClass = Section::class;
26 32
27
    /**
28 32
     * @inheritdoc
29
     */
30
    public static function tableName()
31
    {
32
        return '{{%formgenerator_form}}';
33
    }
34 27
35
    /**
36 27
     * @inheritdoc
37
     */
38
    protected function attributeTypecast(): array
39
    {
40
        return parent::attributeTypecast() + ['id' => 'integer'];
41
    }
42 2
43
    /**
44
     * @inheritdoc
45 2
     */
46
    public function rules()
47
    {
48
        return [
49
            [['name'], 'required'],
50
            [['name'], 'string', 'min' => 6],
51
            [['name'], 'unique'],
52
        ];
53
    }
54 3
55
    /**
56 3
     * @inheritdoc
57 3
     */
58
    public function attributeLabels()
59 3
    {
60
        return array_merge([
61
            'id' => 'ID',
62
            'name' => 'Form name',
63
        ], parent::attributeLabels());
64
    }
65 1
66
    /**
67 1
     * @return ActiveQuery
68 1
     */
69
    public function getSections(): ActiveQuery
70
    {
71
        return $this->hasMany($this->sectionClass, ['form_id' => 'id'])
72
            ->inverseOf('form');
73
    }
74
}
75