繁体   English   中英

Yii2获取发布请求值不起作用

[英]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());输出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'

由于您使用帖子加载模型,我猜您应该显示加载的结果,而不是尝试再次发布帖子:

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)与文本和选择字段的工作方式不同。

  1. 文本字段通过$model->load(Yii::$app->request->post())绑定$model->load(Yii::$app->request->post())
  2. 对于选择更好的方法是获得值$model->parent=$request->post("parent") ,名称显式设置: <?= $form->field($model, 'parent') ->dropDownList($model->AuthItemDropdown,['id' => 'parent','name'=>'parent'] ); ?> <?= $form->field($model, 'parent') ->dropDownList($model->AuthItemDropdown,['id' => 'parent','name'=>'parent'] ); ?>默认情况下,ActiveForm将名称确定为YouModelName[NameOfField]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM