Yii2 获取 post 请求值无效
Yii2 get post request value not working
为什么 Yii::$app->request->post()
不起作用?
表格:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'parent')
->dropDownList($model->AuthItemDropdown
);
?>
<?= $form->field($model, 'child[]')
->dropDownList($model->AuthItemDropdown,
['multiple'=>'multiple']
);
?>
控制器:
public function actionCreate(){
$model = new AuthItemChild();
if ($model->load(Yii::$app->request->post())){
$parent = Yii::$app->request->post('parent');
echo $parent; // show nothing
$x = Yii::$app->request->post('child');
print_r($x);// show nothing
exit;
但是print_r(Yii::$app->request->post());
的输出是:
Array
(
[_csrf-backend] => OGd0emxoOHgJEh8ICFloPlYvJg8BEHk.VjVAMx0hTD9CKgIDNSdVOg==
[AuthItemChild] => Array
(
[parent] => admin
[child] => Array
(
[0] => admin
[1] => create-branch
)
)
)
根据您的 print_r(Yii::$app->request->post());
输出,您应该调用:
$authItemChild = Yii::$app->request->post('AuthItemChild');
echo $authItemChild['parent']; // should show 'admin'
由于您使用 post 加载模型,我想您应该显示加载的结果,而不是再次尝试获取 post:
if ($model->load(Yii::$app->request->post())){
$parent = $model->parent;
echo $parent;
$x = $model->child;
print_r($x);
exit;
}
我试图以同样的方式获得价值。我透露的是
$app->request->post() (Yii2.0.10) 与文本和 select 字段不同。
- 文本字段通过
$model->load(Yii::$app->request->post())
绑定
- 对于 selects 更好的方法是将值作为
$model->parent=$request->post("parent")
并显式设置名称: <?= $form->field($model, 'parent')
->dropDownList($model->AuthItemDropdown,['id' => 'parent','name'=>'parent']
);
?>
默认情况下 ActiveForm 将名称确定为 YouModelName[NameOfField]
为什么 Yii::$app->request->post()
不起作用?
表格:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'parent')
->dropDownList($model->AuthItemDropdown
);
?>
<?= $form->field($model, 'child[]')
->dropDownList($model->AuthItemDropdown,
['multiple'=>'multiple']
);
?>
控制器:
public function actionCreate(){
$model = new AuthItemChild();
if ($model->load(Yii::$app->request->post())){
$parent = Yii::$app->request->post('parent');
echo $parent; // show nothing
$x = Yii::$app->request->post('child');
print_r($x);// show nothing
exit;
但是print_r(Yii::$app->request->post());
的输出是:
Array
(
[_csrf-backend] => OGd0emxoOHgJEh8ICFloPlYvJg8BEHk.VjVAMx0hTD9CKgIDNSdVOg==
[AuthItemChild] => Array
(
[parent] => admin
[child] => Array
(
[0] => admin
[1] => create-branch
)
)
)
根据您的 print_r(Yii::$app->request->post());
输出,您应该调用:
$authItemChild = Yii::$app->request->post('AuthItemChild');
echo $authItemChild['parent']; // should show 'admin'
由于您使用 post 加载模型,我想您应该显示加载的结果,而不是再次尝试获取 post:
if ($model->load(Yii::$app->request->post())){
$parent = $model->parent;
echo $parent;
$x = $model->child;
print_r($x);
exit;
}
我试图以同样的方式获得价值。我透露的是 $app->request->post() (Yii2.0.10) 与文本和 select 字段不同。
- 文本字段通过
$model->load(Yii::$app->request->post())
绑定
- 对于 selects 更好的方法是将值作为
$model->parent=$request->post("parent")
并显式设置名称:<?= $form->field($model, 'parent') ->dropDownList($model->AuthItemDropdown,['id' => 'parent','name'=>'parent'] ); ?>
默认情况下 ActiveForm 将名称确定为YouModelName[NameOfField]