如何将数据从视图传递到控制器 - yii

时间:2014-07-10 09:06:51

标签: php templates yii

我使用标准yii crud系统创建了一个表单,该系统包含某个帐户上的所有“付费列表”。在每个付费列表中都有某些收件人。 (即约翰可能在“游行中的工人”的薪酬清单中,而suzy则在薪资清单“五月工人”中)。我正在尝试在_view.php中创建一个按钮,允许我重定向到收件人页面传递他选择的列表(我称之为list_id)的信息。

我一直试图在视图中使用链接完成所有操作。这是在_view.php

<?php 
$list_id = $data->id;
echo CHtml::link('Manage',array('recipient/index', 'list_id'=>$list_id)); 
?> 

但是,在我的控制器中,我无法调用$ list_id。我应该以不同的方式做这件事吗?我应该尝试将数据从我的视图传递到控制器吗?

___________________ 编辑

在编辑建议

后,控制器看起来像这样
public function actionIndex($list_id)
    {
        // echo $_GET["id"];
        $dataProvider= new CActiveDataProvider('Recipient', array('criteria'=>array(
                                                'condition'=>'list_id = '.$list_id)));
        $this->render('index',array(
            'dataProvider'=>$dataProvider,
        ));
    }

2 个答案:

答案 0 :(得分:1)

Yii已添加对自动操作参数绑定的支持。控制器动作方法可以定义命名参数,其值将从$ _GET由Yii自动填充。

例如:

public function actionIndex($list_id)

您可以使用上面的示例或只使用$ _GET ['list_id']

进行调用

答案 1 :(得分:0)

试试这个 -

在视图文件中传递这样的值

echo CHtml::link('Manage',array("recipient/index/list_id/$list_id"));

并且控制器中的索引函数应该是这样的: -

public function actionindex($list_id = null)
{
   echo $list_id;
}