外部操作返回值(以Yii为单位)
如何将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
<?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;
}