По умолчанию форма будет иметь action = ''
и method = 'post'
. Вы должны изменить это:
echo Html::beginForm(['method' => 'get', 'action' => 'user/create']);
echo Html::activedropDownList(
$model, //name
'COMPANY_ID', //select
$companyList, //items
['onchange'=>'this.form.submit()'] //options
);
echo Html::endForm();
Вы можете найти более подробную информацию в документе here.
UPDATE
Кстати, вы должны перепроверить, как вы запрашиваете идентификатор в вас пользователь/создать страницу. Чтобы проверить, как отправляется параметр get, я бы порекомендовал вам сделать var_dump ($_GET)
в этом действии. IE:
В ContacForm по умолчанию, если я изменить метод «получить», когда я печатать var_dump ($_GET)
и представить его покажет:
array (size=3)
'r' => string 'site/contact' (length=12)
'ContactForm' =>
array (size=5)
'name' => string 'c' (length=1)
'email' => string '[email protected]' (length=18)
'subject' => string 'safd' (length=4)
'body' => string 'asfas' (length=5)
'verifyCode' => string 'eaxpzwp' (length=7)
'contact-button' => string '' (length=0)
Входы, что мне нужно внутри массива «ContactForm» , И это потому, что моя форма исходит от модели ContactForm.php
. Так что имейте это в виду у пользователей/create для правильного вызова идентификатора. Вероятно, будет что-то вроде:
$get = Yii::$app->request->get(); //retrieve all get params in the url, even the route.
if (isset($get['ContactForm'])) { //Replace by the name of the form's model.
$COMPANY_ID = $get['ContactForm']['COMPANY_ID'];
}
Дайте мне знать, если я не понял что-то, и я обновлю ответ за вас.
Кроме того, указав правильную страницу (например, @jorgen сказал), я не могу понять, почему ваш код не работает. В вашем действии User/create вы не получаете идентификатор? Как вы называете id (в этом действии)? вы можете показать нам? – Clyff
$ COMPANY_ID = $ _GET ['COMPANY_ID']; – Bumbuli