Небезопасные атрибуты
Как сказано выше, метод [[yii\base\Model::scenarios()]] служит двум целям: определения, какие атрибуты должны быть проверены, и определения, какие атрибуты являются безопасными (т.е. не требуют проверки). В некоторых случаях необходимо проверить атрибут не объявляя его безопасным. Вы можете сделать это с помощью префикса восклицательный знак !
в имени атрибута при объявлении его в scenarios()
как атрибут secret
в следующем примере:
public function scenarios()
{
return [
self::SCENARIO_LOGIN => ['username', 'password', '!secret'],
];
}
Когда модель будет присутствовать в сценарии login
, то все три эти атрибута будут проверены. Однако, только атрибуты username
и password
могут быть массово присвоены. Назначить входное значение атрибуту secret
нужно явно следующим образом,
$model->secret = $secret;