Size: a a a

2016 September 29

IM

Ilya Medzhidov 🖋 in Yii Framework 2
И, между прочим, этот раздел вообще не содержит никакой, по сути, информации. Кроме примера кода и объяснения того, как работают промежуточные таблицы, а не объяснения, как работают данные методы.
источник

BS

Borisov Stanislav in Yii Framework 2
английская дока намного информативнее
источник

AT

Antony Tkachenko in Yii Framework 2
Я в основном на английской сижу, но некоторые непонятные моменты подглядеть в русской неплохо тоже.
источник

AT

Antony Tkachenko in Yii Framework 2
Кстати где найти все допустимые параметры валидации в rules?
Ибо в доках не могу найти тот же
when

,
range
источник

A

Anatolyx in Yii Framework 2
Я обычно заглядываю в yii\validators\Validator
источник

A

Anatolyx in Yii Framework 2
Там вполне ясно всё описано
источник

AK

Artem Komarov in Yii Framework 2
источник

AK

Artem Komarov in Yii Framework 2
Или в класс нужного валидатора смотреть в его публичные св-ва
источник

AT

Antony Tkachenko in Yii Framework 2
Да, все нашел в публичных свойствах.
источник

AT

Antony Tkachenko in Yii Framework 2
Еще небольшое уточнение, если я задаю в scenarios нужные поля для сценариев, то в rules все равно нужно прописывать 'on' => 'scenario' или будут применятся только поля, указанные в сценарии?
В зависимости поведения как добавить поля во все сценарии? Получается либо нужно дублировать поля в scenarios либо задавать сценарии ко всем полям?
источник

A

Anatolyx in Yii Framework 2
scenarios можно не переопределять:


    * The default implementation of this method will return all scenarios found in the [[rules()]]
    * declaration. A special scenario named [[SCENARIO_DEFAULT]] will contain all attributes
    * found in the [[rules()]]. Each scenario will be associated with the attributes that
    * are being validated by the validation rules that apply to the scenario.
источник

AT

Antony Tkachenko in Yii Framework 2
Т.е. я правильно понимаю что без указания сценария в rules будет применятся в любом случае?
Тогда не понятно зачем вообще переопределять scenarios.
источник

A

Anatolyx in Yii Framework 2
Да, правильно. Здесь есть 2 варианта решения. Иногда форма имеет настольно много полей / сценарием, что наглядней будет записать их в другом виде - переопределить scenarios и убрать on из rules. Гибко, но не с первого раза въезжаешь
источник

AT

Antony Tkachenko in Yii Framework 2
Т.е. scenarios я должен указать только уникальые поля для этого сценария, для других сценариев в этом случае оно не будет применятся, а поля которые не заданы в scenarios  будут выполнятся в любом случае (как SCENARIO_DEFAULT)?
На примере
    public function scenarios()

    {

        return [

          self::SCENARIO_GUEST => ['email','username'],

          self::SCENARIO_AUTH  => ['user_id'],

       ];

    }

  public function rules()

    {

        return [

            [ ['message','email','username'], 'required'],

            [ ['message','email','username'], 'string'],

            [ ['user_id'], 'integer']

        ];

    }

Я все верно понял?
источник

A

Anatolyx in Yii Framework 2
В данном случае - да
источник

A

Anatolyx in Yii Framework 2
Ой, стоп
источник

A

Anatolyx in Yii Framework 2
Поля, которых нет в scenarios будут unsafe
источник

A

Anatolyx in Yii Framework 2
То есть ты либо указываешь 'on' у валидатора, либо пишешь метод scenarios и указываешь в каких сценариях какие поля являются safe
источник

A

Anatolyx in Yii Framework 2
Надеюсь, понятно объяснил
источник

AT

Antony Tkachenko in Yii Framework 2
Т.е. поля по умолчанию которые должны выполнятся во всех сценариях я могу либо дублировать в scenarios, либо в rules пишу on все сценарии?
источник