Кстати, может кто-то подскажет: есть возможность прописать атрибут в правилах

валидации, но не делать его автоматически безопастным? Без использования сценариев.

В сценарии есть возможность поставить знак восклицания перед названием атрибута. А в правилах?

То есть интересует обратная штука до валидатора "safe"

12 ответов

26 просмотров

Прописать функцию валидации

Матвій Year
То есть?

Написать пользовательскую функцию валидации и использовать ее в правилах. Вы чего хотите добиться? Чтобы атрибут не игнорился, но при этом не стал безопасным? Делаете функцию и проверяете в ней все что вам надо с любыми условиями хоть со сценариями хоть без

Матвій-Year Автор вопроса
Andrey Danilov
Написать пользовательскую функцию валидации и испо...

Да нет, просто чтоб он был в правилах, но его нельзя было массово присвоить

Матвій Year
Да нет, просто чтоб он был в правилах, но его не...

Поведение свое создайте для модели, и пихайте через конфиг в него нужные атрибуты

Матвій Year
Да нет, просто чтоб он был в правилах, но его не...

Что значит "нельзя было массово присвоить"?

allpeg
Через $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 для массового присвоения

Матвій-Year Автор вопроса
allpeg
Massive assignment only applies to the so-called s...

Так не в правилах, а в сценариях. В правилах разве тоже работает?

Матвій Year
Так не в правилах, а в сценариях. В правилах раз...

Если я правильно понимаю дефолтную реализацию scenarios, то да. Но проверить не могу так как не у компа

Матвій-Year Автор вопроса
allpeg
Если я правильно понимаю дефолтную реализацию scen...

Да все ок, я уже сценарий прописал. Просто думаю, может есть вариант проща

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта