簡體   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