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

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

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

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

12 ответов

6 просмотров

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

Матвій-Year Автор вопроса
Матвій 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...

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

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

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

Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Это фейк @cruppto_newbot?
Antskup
13
всем салют сегодня утро заметил что бот не может отправлять фотки по url. ручками в браузере ссылка норм открывает фотки. падает ошибка 'Bad Request: failed to send message ...
Vasya Ivanov
9
ребят, привет. за какое время бот полученную заявку на вступление в группу может принять \отклонить? Помню речь была про 5 минут, сейчас как?
Роман Ромашин :)
10
Добрый день! На Odoo 16.0 через 1-2 дня перестают работать кроны. В логах одна только ошибка на момент, когда сработал последний крон. Может кто-то уже с этим разбирался?
Denis Валенчиц
3
Доброго времени суток. Правильно ли я понимаю, что с введением новой платежной единицы stars, я просто могу оставить текущую платёжку от Юкассы, которая выполняется на сайте с...
Prokhor Chulkov
7
Добрый день! Не подскажете как к модели Категории Шопоголика добавить отношение Тейлора. Пробовал по документации, но не получается. Мб уже кто-то делал?
Николай Афанасенко
6
1. странный лог. Обычно лог идет по времени сверху вниз, а у Вас наоборот. Как так вышло? 2. это odoo.sh ?
Alex Kom
3
@veranikaEU получилось? Можно увидеть рабочий код?
Alex Kom
8
вопрос: кто как решает вопрос с динамической подгрузкой скриптов для отдельных страниц с включенным turbo router?
Sergei Toroptsev
25
Карта сайта