php - Yii RenderPartial 参数

标签 php yii

不太明白renderpartial方法中的第三个和第四个参数(return和processOutput)是干什么的。这是我在 Yii 的文档中找到的内容:

public string renderPartial(string $view, array $data=NULL, boolean $return=false, boolean $processOutput=false)
 - $view    (string)    name of the view to be rendered. See getViewFile for details about how the view script is resolved.
 - $data    (array)     data to be extracted into PHP variables and made available to the view script
 - $return  (boolean)   whether the rendering result should be returned instead of being displayed to end users
 - $processOutput   (boolean)   whether the rendering result should be postprocessed using processOutput.

我环顾四周,但似乎无法理解这份文档到底想表达什么。

  1. 对于“返回”参数,它表示它控制是否将结果返回或显示给最终用户。这两个东西(返回给用户和显示给用户)不是一回事吗?

- 例如,我正在尝试通过 ajax 向页面添加内容。服务器回显一个 json 编码的 renderpartial 语句,客户端的 javascript 使用 jquery 方法插入它。当我将“return”参数设置为 false 时,整个 ajax 操作有效,并且这些内容成功插入到我指定的位置。但是,当我将“return”参数设置为 true 时,服务器将代码仅作为文本而不是 html 回显。客户端的 javascript 然后提示几个错误......这对我来说根本没有任何意义。

  1. 什么是后处理,它在哪里指定?我知道我没有编写任何“后处理”代码,那么这是从哪里来的?

如有任何帮助,我们将不胜感激。

最佳答案

返回选项选择代码是否回显。如果 $return = true; 这意味着您必须获取字符串并自己回显出来。基本上是必须写之间的区别

<?php $this->renderPartial($view, $data, false); ?>

<?php echo $this->renderPartial($view, $data, true); ?>

至于 $processOutput 变量,它用于在 html 返回之前调用 $this->processOutput。例如,这可用于针对 ajax 请求生成 hacky 解决方案,请看这里:http://www.yiiframework.com/forum/index.php/topic/24927-yii-processoutput-only-for-certain-action/在这里 Yii renderpartial (proccessoutput = true) Avoid Duplicate js request大多数情况下,您不会使用此功能,因此您不必担心 :)

如果更清楚的话,这里是相关的源代码:

if($processOutput)
    $output=$this->processOutput($output);

if($return)
    return $output;
else
    echo $output;

(在此处找到:http://www.yiiframework.com/doc/api/1.1/CController#renderPartial-detail)

关于php - Yii RenderPartial 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915731/

相关文章:

php - 我如何检查传入请求是浏览器、ajax 还是 PHP 中的 REST 调用?

layout - 对 Yii 中的多个模块使用通用布局

php - Yii 1.1.16 - renderPartial() 在输出开始处添加一个空格

php - Yii 类未找到,命名空间使用

yii - Yii2 Controller 与 Yii1 Controller 的结合

php - Guzzle3 发送原始 Post 请求

php - 使用PHP显示的长日志数据易于阅读

javascript - AngularJS 缩小的 js 文件不起作用

java - 为什么 PHP 和 JAVA 的输出不相等

javascript - Yii,通过ajax更新列表,无法理解它是如何工作的;