@tincap

Почему модель не видит GET-параметр?

Есть модель

class SearchForm extends Model
{
    public $age;
}


Передаю данные с помощью метода GET. После передачи данных URL у меня выглядит следующим образом
?SearchForm%5Bage%5D=20

И есть контроллер, который использует эту модель

$model = new SearchForm();
if ($model->load(Yii::$app->request->get())) {
    die($model->age); // пусто
}


Но почему-то контроллер не видит $model->age. Не видит также и Yii::$app->request->get('age');
Смотрел на debug. Он говорит, что SearchForm::age = 20. Не могу понять, каким образом вытащить этот проклятый age из url. Yii видит age только в том случае, если он прописан как ?age=20
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
@matperez
А аттрибут age в правилах валидации помечен как безопасный к массовому присвоению? Попробуйте добавить [['age'], 'safe'] в правила валидации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@karminski
Senior React.JS Developer
Поскольку age - это явно возраст, лучше тогда уж так:
public function rules()
{
    return [
        ['age', 'integer', 'min' => 1, 'max' => 100]
    ];
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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