从控制器到管理/视图的变量

时间:2014-09-29 09:40:12

标签: yii

我的控制器无法将变量返回到我的视图/管理员。

这是我的控制器:



public function actionAdmin()
	{
		$model=new Lunch('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_POST['Lunch'])) {
			$model->attributes=$_POST['Lunch'];
			
			// vanaf hier
		$IDdate = $model->date;
		'<pre>';
		var_dump($IDdate);
		'</pre>';
		$this->redirect(array('Lunch/admin', 'id'=>$model->date));
	
	//tot hier
		}
		$this->render('admin',array(
		'model'=>$model,
		));
	}
&#13;
&#13;
&#13;

这是我的管理员:

&#13;
&#13;
<?php
   $form = $this->beginWidget('CActiveForm', array(
    'id'=>'date',
    'enableAjaxValidation'=>true,
)); ?>


<?php echo $form->dropDownList($model, 'date',
        CHtml::listData(Lunch::model()->findAll(), 'id', 'date'));?>

<?php echo CHtml::submitButton('Save', array("id"=>"submitLunch")); ?>

<?php $this->endWidget(); ?>
&#13;
&#13;
&#13;

我错了什么:(。 如果我给你的人少一些信息就说!

2 个答案:

答案 0 :(得分:0)

当你使用&#34; ajax&#34;在您的表单中,您将获得一个包含&#39; ajax&#39;值。

所以,你可以试试这个:

&#13;
&#13;
public function actionAdmin(){

	$model=new Lunch('search');
    $model->unsetAttributes();  // clear any default values
	$model->attributes=$_POST['Lunch'];
    if (isset($_POST['ajax']) && $_POST['ajax'] === 'date-form') {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
    //non-ajax code
	$this->render('admin',array(
	'model'=>$model,
	));    	
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

基本上,CController的重定向方法尝试重定向用户,然后默认终止应用程序(请参阅方法的第二个参数,默认情况下为true)。

redirect(mixed $url, boolean $terminate=true, integer $statusCode=302)

这也使用HTTP标头进行重定向,这意味着您无法在此方法之前打印任何内容。如果您打印/回显任何内容,它也会将请求标头发送到客户端,因此重定向将失败,因为标头已经发送。

您必须删除此部分:

    '<pre>';
    var_dump($IDdate);
    '</pre>';

它应该可以正常工作。

如果仍然无法解决您的问题,请检查Lunch型号的验证规则。您必须为date属性设置至少一个规则才能使$model->attributes = $_POST['Lunch'];生效(它不会在没有任何规则的情况下分配'不安全'属性)

请将此rules函数放入Lunch模型中:

class Lunch extends CActiveRecord {
...

    public function rules() {
        return array(
            array('date','length','max'=>255)
        );
    }

...
}

您可以在此处详细了解模型验证规则:http://www.yiiframework.com/wiki/56/ 希望这能解决你的问题!