外部操作返回值(以Yii为单位)

外部操作返回值(以Yii为单位),yii,Yii,如何将Yii中的外部操作的值传递给其父控制器 例如: 外部操作看起来像: <?php class uploadAction extends CAction { /** * Runs the action. * This method is invoked by the controller owning this action. */ public function run() { ..... $fileName=$result['filename'];//GE

如何将Yii中的外部操作的值传递给其父控制器

例如: 外部操作看起来像:

<?php
 class uploadAction extends CAction
{
/**
* Runs the action.
* This method is invoked by the controller owning this action.
*/
public function run()
{
    .....

        $fileName=$result['filename'];//GETTING FILE NAME

        $this->controller->image = $fileName; // this line does not work!!  

}
  }

用户图像:
这样做:

$this->controller->image = $fileName; // this line does not work!!  
$this->controller->renderText($this->controller->image);
我打赌这会显示$fileName

您在哪里尝试访问控制器映像属性


请求之间不保留值

我使用回调做过类似的事情

因此,在我的控制器操作()配置中,我有一行:

'onSuccessCallback' => 'myCallback'
在我的action类中,在run()结束时,我有:

在控制器中,我有

function myCallback($fileName)
{
this->image = $fileName;
}
然后,我可以通过从控制器访问该属性

$this->image


我正在尝试使用此外部操作上载一个图像,然后将上载的图像名称保存在数据库的image_name字段中。我必须在控制器中获取$filename的值,在控制器中我有一个特定的函数要保存在我的数据库中。在我的控制器中,我有一个名为$image的公共变量。。我希望这足够清楚。也许你应该调用控制器中的函数
$this->controller->saveStuff($fileName)
或者您可以在控制器中实施
后置操作
方法。也许逻辑不应该在控制器中,但在模型中(谷歌更多关于瘦控制器胖模型)我尝试了所有你的建议,但没有效果!我非常想知道这个值在哪里:)顺便说一句,这个动作是通过Ajax上传的。。我不知道这是否与问题有关!您必须在同一个请求中上传并保存到数据库,因为上传/ajax请求结束后文件将被删除。此外,请求之间不保留控制器状态(使用会话)。除非提供控制器和操作的完整代码,否则无法提供更多帮助。
$this->controller->image = $fileName; // this line does not work!!  
$this->controller->renderText($this->controller->image);
'onSuccessCallback' => 'myCallback'
call_user_func( array($this->getController(),$this->onSuccessCallback), $fileName);
function myCallback($fileName)
{
this->image = $fileName;
}