我是Yii框架的新手。我使用Chtml表单将数据从视图发送到控制器,并希望打印结果并将其插入数据库。但在我的情况下,它显示一个空数组。我无法理解我做错了什么。所以请帮我解决这个问题。
控制器中的
public function actionTest1()
{
$obj = new Pad;
if(isset($_POST))
print_r($_POST);// to check the desired result
if(isset($_POST['Pad']))
{
$obj->attributes=$_POST['Pad'];
if($obj->save()) // insert the data
$this->redirect(array('view','id'=>$obj->id));
}
}
在视图中
<?php echo CHtml::beginForm('','post',array('id'=>'step1Form')); ?>
<div class="stopPad">
<div class="floatLeft padTop5 marRight5">
<?php
echo CHtml::radioButton('stoppad',false,array('value'=>'Stop Pad after goal is reached'));
?>
</div>
<div class="currencyText padTop4 floatLeft">Stop Pad after goal is reached</div>
<div class="clearBoth"></div>
</div>
<div class="stopPad">
<div class="floatLeft padTop5 marRight5">
<?php
echo CHtml::radioButton('stoppad',false,array('value'=>'No limites'));
?>
</div>
<div class="currencyText padTop4 floatLeft">No limites</div>
<div class="clearBoth"></div>
</div>
<div class="nextText">
<?php echo CHtml::link('Next >',array('pad/test1'));?>
</div>
<?php echo CHtml::endForm(); ?>
请帮忙。提前谢谢!
答案 0 :(得分:0)
您没有提交表单,当然$_POST
将为空。下面的行只是一个链接:
<?php echo CHtml::link('Next >',array('pad/test1'));?>
您必须将其更改为:
<?php echo CHtml::submitButton('Next >');?>
并在表单中添加操作。
答案 1 :(得分:0)
使用我所做的更改更新问题。它将我重定向到pad / test1,显示array()作为结果。
控制器中的
public function actionTest1()
{
$obj = new Pad;
if(isset($_POST))
CVarDumper::dump($_POST);// to check the desired result
if(isset($_POST['Pad']))
{
$obj->attributes=$_POST['Pad'];
if($obj->save()) // insert the data
echo "=====";
}
}
在视图中
<?php echo CHtml::beginForm( '','post'); ?>
<div class="stopPad">
<div class="floatLeft padTop5 marRight5">
<?php
echo CHtml::radioButton('stoppad',false,array('value'=>'Stop Pad after goal is reached'));
?>
</div>
<div class="currencyText padTop4 floatLeft">Stop Pad after goal is reached</div>
<div class="clearBoth"></div>
</div>
<div class="stopPad">
<div class="floatLeft padTop5 marRight5">
<?php
echo CHtml::radioButton('stoppad',false,array('value'=>'No limites'));
?>
</div>
<div class="currencyText padTop4 floatLeft">No limites</div>
<div class="clearBoth"></div>
</div>
<div class="nextText">
<?php echo CHtml::button('Next >', array('submit' => array('pad/test1'))); ?>
</div>
<?php echo CHtml::endForm(); ?>
答案 2 :(得分:-1)
新Yii用户之间常见的混淆因素是“如何安全”。验证器工作,它如何与其他验证器一起工作,以及为什么它首先是必要的。本文意味着澄清这种混乱,并解释大规模作业的概念。
http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/