Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单向yii2中的控制器发送空值_Php_Yii2 - Fatal编程技术网

Php 表单向yii2中的控制器发送空值

Php 表单向yii2中的控制器发送空值,php,yii2,Php,Yii2,这是我的表单,我将它发送到控制器以获取数据并将其插入到带有模型的db中,但是当我在控制器中检查post数据时,它是空的。这是我的表格: <div class="container"> <div class="row"> <div class="col-md-12" > <div class="widget-area no-padding blank"> <div clas

这是我的表单,我将它发送到控制器以获取数据并将其插入到带有模型的db中,但是当我在控制器中检查post数据时,它是空的。这是我的表格:

<div class="container">
   <div class="row">
   <div class="col-md-12" >
               <div class="widget-area no-padding blank">
               <div class="status-upload">
                 <?php
                 $form = ActiveForm::begin([
                   'action' => ['twit/send-twit'],
                 ]);
                 ?>
                  <?= $form->field($model,'twit')->textarea(); ?>
                   <?= Html::SubmitButton('ارسال',['class' => 'btn btn-success green']); ?>
                 <?php ActiveForm::end(); ?>
               </div><!-- Status Upload  -->
             </div><!-- Widget Area -->
           </div>
   </div>
</div>

假设
Twit
是型号名称

public function actionSendTwit()
{
  $modelTwit = new Twit();
  $request = Yii::$app->request;

  if ($modelTwit->load($request->post())) {

    $twitContent = $request->post('Twit');
        var_dump($twitContent);
    Twit::sendTwit($twitContent);
    \yii::$app->response->redirect('?r=twit/index',301)->send();
  }

}
用户需求。

查看

现在假设有两个字段。用户名和twit。(我假设这些字段存在于数据库表中。)因此,当您使用
$twitContent=$request->post('twit')。它使用Twit模型而不是
字段名。

如果要检查username和twit的值。使用下面的方法

<div class="container">
   <div class="row">
         <div class="col-md-12" >
             <div class="widget-area no-padding blank">
               <div class="status-upload">
                 <?php
                 $form = ActiveForm::begin([
                   'action' => ['twit/send-twit'],
                 ]);
                 ?>
                  <?= $form->field($model,'twit')->textarea(); ?>
                  <?= $form->field($model,'username')->textinput(); ?>
                  <?= Html::SubmitButton('ارسال',['class' => 'btn btn-success green']); ?>
                 <?php ActiveForm::end(); ?>
               </div><!-- Status Upload  -->
             </div><!-- Widget Area -->
           </div>
   </div>
</div>

控制器

<?
public function actionSendTwit()
{
  $modelTwit = new Twit();
  $request = Yii::$app->request;

  if ($modelTwit->load($request->post())) {

    $twitContent = $request->post('Twit'); //In this, model is called

    //If you want to see value then.
    print_r($twitContent['twit']);
    print_r($twitContent['username']);

    Twit::sendTwit($twitContent);
    \yii::$app->response->redirect('?r=twit/index',301)->send();
  }

}
?>


try
var_dump($request->post('Twit')
formName
必须与型号相同Name@DoubleH它起作用了,非常感谢。但是我想知道,为什么我应该使用大写的twit,因为我用小写的t定义了字段的名称?你很困惑
post('Twit')
这里,Twit是模型名而不是字段名@SobhanBagheri@NanaPartykar是的,但是想象一下,我的数据库中有另一个字段,例如“username”,我从表单中获取数据。在这种情况下,用什么来代替Twit呢?我在回答中解释你。等一下@Sobhanbagherin现在我明白了,所有发布的字段都在一个数组中,带有它们的名称键。非常感谢,非常有用。我更新了@SobhanBagheri。冷静点。Yii/Yii2很容易。在得到这些小的基本知识之后。祝你一切顺利。
<?
public function actionSendTwit()
{
  $modelTwit = new Twit();
  $request = Yii::$app->request;

  if ($modelTwit->load($request->post())) {

    $twitContent = $request->post('Twit'); //In this, model is called

    //If you want to see value then.
    print_r($twitContent['twit']);
    print_r($twitContent['username']);

    Twit::sendTwit($twitContent);
    \yii::$app->response->redirect('?r=twit/index',301)->send();
  }

}
?>