Php 表单向yii2中的控制器发送空值
这是我的表单,我将它发送到控制器以获取数据并将其插入到带有模型的db中,但是当我在控制器中检查post数据时,它是空的。这是我的表格: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
<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();
}
}
?>
tryvar_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();
}
}
?>