将空值发送到 yii2 中的控制器的表单 [英] form sending null value to the controller in yii2

查看:23
本文介绍了将空值发送到 yii2 中的控制器的表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

<div class="row"><div class="col-md-12" ><div class="widget-area no-padding blank"><div class="status-upload"><?php$form = ActiveForm::begin(['动作' =>['twit/send-twit'],]);?><?= $form->field($model,'twit')->textarea();?><?= Html::SubmitButton('ارسال',['class' =>'btn btn-success green']);?><?php ActiveForm::end();?></div><!-- 状态上传--></div><!-- 小部件区域-->

这是我的控制器,我正在检查已发布字段的值(twit),它始终为空:

 公共函数 actionSendTwit(){$request = Yii::$app->request;var_dump($request->post('twit'));死();if ($request->post('twit')){$twitContent = $request->post('twit');Twit::sendTwit($twitContent);\yii::$app->response->redirect('?r=twit/index',301)->send();}}

解决方案

假设 Twit 是模型名称.

公共函数 actionSendTwit(){$modelTwit = new Twit();$request = Yii::$app->request;如果 ($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="row"><div class="col-md-12" ><div class="widget-area no-padding blank"><div class="status-upload"><?php$form = ActiveForm::begin(['动作' =>['twit/send-twit'],]);?><?= $form->field($model,'twit')->textarea();?><?= $form->field($model,'username')->textinput();?><?= Html::SubmitButton('ارسال',['class' =>'btn btn-success green']);?><?php ActiveForm::end();?></div><!-- 状态上传--></div><!-- 小部件区域-->

控制器

<代码>request;如果 ($modelTwit->load($request->post())) {$twitContent = $request->post('Twit');//在此,模型被调用//如果你想看到价值然后.print_r($twitContent['twit']);print_r($twitContent['用户名']);Twit::sendTwit($twitContent);\yii::$app->response->redirect('?r=twit/index',301)->send();}}?>

here is my form and I'm sending it to the controller to get the data and insert it to the db with model but when I'm checking the post data in the controller it is null . here is my form :

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

and here is my controller which I'm checking the value of the posted field (twit) and it is always null :

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

    }

解决方案

Assuming Twit is model name.

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();
  }

}

For User's Requirement.

View

Now suppose, you are having two field. username and twit.(I assume these field are present in your DB Table.) So, When you use $twitContent = $request->post('Twit');. It uses Twit Model not the field name.

If you want to check values of username and twit. Use below method.

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

Controller

<?
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();
  }

}
?>

这篇关于将空值发送到 yii2 中的控制器的表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆