在yii中,如何将变量从一个动作传递到控制器的另一个动作?
这是我的行动在yii中,如何将变量从一个动作传递到控制器的另一个动作?,yii,Yii,这是我的行动 public function actionUpload() { $model=new Sop; if(isset($_FILES['files'])){ print_r($_POST['name']);exit; $tmp_name = $_FILES['files']['tmp_name'][0]; $filename = $_FILES['files']['name'][0]; $new_url =
public function actionUpload()
{
$model=new Sop;
if(isset($_FILES['files'])){
print_r($_POST['name']);exit;
$tmp_name = $_FILES['files']['tmp_name'][0];
$filename = $_FILES['files']['name'][0];
$new_url = Yii::app()->basePath."/docfile/".$filename;
move_uploaded_file($tmp_name, $new_url);
/*if(move_uploaded_file($tmp_name, $new_url)){
//print_r($filename);exit;
echo $filename;
}*/
}
else "error";
}
现在,我想将$tmp\u name、$filename和$new\u url传递给此控制器中的另一个操作。我不确定您试图实现什么,因为控制器中的操作旨在处理请求和生成响应。您似乎没有正确地使用 但是,如果您坚持使用控制器操作,则可以使用重定向和参数,如以下文档所示: 例如(从控制器内部):
请注意,这远非理想。我不确定您想要实现什么,但我建议使用一个来完成上传(?)作业,而不是将参数发送给完成上传的控制器操作。您可以使用
$this->forward('action')
执行另一个操作,而无需重定向到该url:
$params = array(
'tmp_name' => $tmp_name,
'filename' => $filename,
'new_url' => $new_url,
);
$action = $this->createUrl('controller/action', $params);
$this->forward($action);
另一个操作标题可能如下所示:
public function actionAction($tmp_name, $filename, $new_url)
public function actionnext($tmp_name , $filename , $new_url)
{
//your code goes here.
}
假设您要将$tmp_name、$filename和$new_url参数传递给同一控制器中名为“next”的操作,可以这样简单地完成, 在actionUpload()中,调用actionnext作为$this->actionnext($tmp\u name、$filename和$new\u url) 在控制器中,actionnext()的定义如下所示:
public function actionAction($tmp_name, $filename, $new_url)
public function actionnext($tmp_name , $filename , $new_url)
{
//your code goes here.
}
在actionnext函数定义中,“$tmp\u name、$filename、$new\u url”只是变量,因此您可以在此处使用任何名称。添加到该函数中;您似乎正在使用Yii1而不是Yii2(consufing tags…?),因此您可以在此处查找文档您使用的是Yii2.0还是1.1?在2.0和1.1上有许多不同之处,我如何在另一个操作中接收这些变量?@MohibulHasanRana作为您操作的参数function@MohibulHasanRana我添加了一个示例,但也许您可以添加您想要使用的操作代码,以便我们可以给您提供更好的建议。