Skip to content

Формы в yii #18

@hello-omny

Description

@hello-omny

Когда создаете формы, не стоит наследоваться от ActiveRecord:

  • т. к. там уже есть мэджик-свойства, которые вам необходимы,
  • модель формы это модель формы,
  • ActiveRecord это модель работы с БД.
  • К ActiveRecord, который является моделью работы с БД могут быть навешаны всякие поведения, да и просто обработчики некоторых событий, которые при инициализации и прочих вызовах методов будут трегириться когда вы будете работать с формами.

Для формы надо использовать новый класс, который будет унаследован от yii\base\Model, содержать собственные свойства и правила.

Есть целый раздел на эту тему в офф-доке: создание форм в yii2

Плохо:

<?php

class LoginForm extends \yii\db\ActiveRecord
{
    public $username;
    public $password;
}

Хорошо:

<?php

class LoginForm extends \yii\base\Model
{
    public $username;
    public $password;

    public function rules()
    {
        return [
            // тут определяются правила валидации
        ];
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions