Php Yii框架:通过Chtml:按钮传递变量

Php Yii框架:通过Chtml:按钮传递变量,php,yii,Php,Yii,我正在尝试将一个变量从一个视图(移动模型)传递到另一个控制器(库存模型),使用带有此代码的chtml:button echo CHtml::button( 'Sell It', array('submit' => array('inventory/create', array('id'=>$data->id))) ); 现在,我如何访问Inventory controller中的$id变量,以便使用与移动模型传递的'id'变量相对应的详细信息预填充creat

我正在尝试将一个变量从一个视图(移动模型)传递到另一个控制器(库存模型),使用带有此代码的
chtml:button

echo CHtml::button(
    'Sell It', 
    array('submit' => array('inventory/create', array('id'=>$data->id)))
);

现在,我如何访问Inventory controller中的
$id
变量,以便使用与移动模型传递的'id'变量相对应的详细信息预填充create视图

如果您试图生成一个更新/编辑表单,其中包含根据传递的Id预先填充的值,那么您应该查看YII中可用的CRUD选项。。这是处理记录更新的更好的方法,而且也很简单。有关更多信息,请参阅本主题


在库存/创建控制器操作中,对$\u GET['id']进行测试,例如:

$id = (@$_GET['id']) ? : DEFAULT_VALUE;
$this->render('create',array('model'=>$inventory, 'id'=>$id));
然后通过传递一个要使其可用的变量数组,将数据传递给视图


(您可能希望更好地过滤输入,这只是一个示例--使用filter_input或其他方法,并定义默认值和/或对其进行测试,使其为空/无效)

在清单/创建控制器操作中,在获取id之前执行以下检查:-

if (isset($_REQUEST['id'])) {

    $id = $_REQUEST['id'];

    $this->render('create',array('model'=>$inventory, 'id'=>$id));

}
else{

    $this->render('create',array('model'=>$inventory);

}

在控制器中,您可以通过如下方式为控制器方法提供参数来获取变量:

public function actionCreate($id){
    $id = isset($id)?$id:NULL; // Or whatever, you can access it like this.
}

您不必使用$\u GET,yii已经对该值进行了一些安全检查。

不,这不是我想要做的。无论如何,现在使用$\u GET