TYPO3:<f:cobject>不能使用来自Typo3 Extension的变量吗?</f:cobject>

时间:2014-04-10 10:50:08

标签: php typo3 typoscript

我的TYPO3 4.7.17扩展程序包含以下代码: (控制器)     

public function listJobPublicAction(Tx_Htmjob10_Domain_Model_JobDemand $jobDemand = NULL) {
    $nrAllJobs = $this->jobRepository->countAll();
    ...
    $this->view->assign('jobs', $jobs);
}

和我的扩展程序视图:

<f:cObject typoscriptObjectPath="lib.count2">{nrAllJobs}</f:cObject>

我的TYPOScript:

lib.count2= HTML
lib.count2{
    value.current = 1
    value.wrap = <strong>|</strong>
}

这适用于TYPO3扩展程序中的流体模板

我想在流体部分中使用nrAllJobs,但无效。这是一个空行。

<f:layout name="Default" />
<f:cObject typoscriptObjectPath="lib.count2">{nrAllJobs}</f:cObject>

如何从Fluid partial访问PHP变量(不是 TYPO3扩展中的流体模板)?

2 个答案:

答案 0 :(得分:1)

要将值传递给TyposcriptObject,你做得对:

<f:cObject typoscriptObjectPath="lib.count2">{nrAllJobs}</f:cObject>

正如您所提到的,这可以在Fluidtemplate中使用,但不能在Partial中使用。一个简单的猜测:你是否已将模板中的变量传递给部分?像这样:

<f:render partial="MyPartial" arguments="{_all}" />

请注意,arguments必须是数组或关键字_all,只需将所有varibales传递给partial。如果您只想传递变量,请使用{nrAllJobs:nrAllJobs}如果将yout变量传递给partial,则在模板中使用f:cObject ViewHelper或部分是没有区别的。

但是,正如其他人所提到的那样,您可以显示变量的值而不必绕过TypoScript对象。只需{nrAllJobs},但仍要确保将变量传递给您的副本。

答案 1 :(得分:0)

我不认为cObject函数是这样的。 它是:

<f:cObject typoscriptObjectPath="lib.myObject"></f:cObject>

所以你的变量是这里的lib.myObject。

也许你试试:

<strong>{nrAllJobs}</strong>

在流体模板中。