валидации, но не делать его автоматически безопастным? Без использования сценариев.
В сценарии есть возможность поставить знак восклицания перед названием атрибута. А в правилах?
То есть интересует обратная штука до валидатора "safe"
Прописать функцию валидации
Написать пользовательскую функцию валидации и использовать ее в правилах. Вы чего хотите добиться? Чтобы атрибут не игнорился, но при этом не стал безопасным? Делаете функцию и проверяете в ней все что вам надо с любыми условиями хоть со сценариями хоть без
Да нет, просто чтоб он был в правилах, но его нельзя было массово присвоить
Поведение свое создайте для модели, и пихайте через конфиг в него нужные атрибуты
Что значит "нельзя было массово присвоить"?
Через $model->attributes
Перепишите метод setAttributes
Massive assignment only applies to the so-called safe attributes which are the attributes listed in yii\base\Model::scenarios() for the current scenario of a model. ... In some rare cases, you may want to validate an attribute but do not want to mark it safe. You can do so by prefixing an exclamation mark ! to the attribute name when declaring it in scenarios(), like the secret attribute in the following: public function scenarios() { return [ self::SCENARIO_LOGIN => ['username', 'password', '!secret'], ]; } Из доки. Восклицательный знак в правилах и он не станет safe для массового присвоения
Так не в правилах, а в сценариях. В правилах разве тоже работает?
Если я правильно понимаю дефолтную реализацию scenarios, то да. Но проверить не могу так как не у компа
Да все ок, я уже сценарий прописал. Просто думаю, может есть вариант проща
Обсуждают сегодня