Mic*_*ach 2 namespaces typo3 fluid extbase
我花了8个多小时才弄清楚它没有得到解决.我想要的只是在Fluid模板中调用ViewHelper.我以前这样做过,我从来没有遇到类似的问题.
我的ViewHelper文件位于
EXTDIR/VendorName/Classes/ViewHelpers/SomeViewHelper.php.
Run Code Online (Sandbox Code Playgroud)
在我的流体模板中,我使用命名空间
{namespace k=VendorName\Extname\ViewHelpers}.
Run Code Online (Sandbox Code Playgroud)
在模板的某处,我将ViewHelper称为
{k:some()}.
Run Code Online (Sandbox Code Playgroud)
ViewHelper脚本"SomeViewHelper.php"包含以下代码:
class SomeViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
public function initializeArguments() { }
public function render() {
return 7;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,整个过程非常简单,页面上的预期输出应为"7".但是在前端调用页面会产生以下错误消息:
Oops, an error occurred!
Could not analyse class:VendorName\Extname\ViewHelpers\SomeViewHelper maybe not loaded
or no autoloader?"
Run Code Online (Sandbox Code Playgroud)
关于这里可能出错的任何提示?
干杯迈克尔
您的viewHelper源文件路径错误。
正确的路径应该是(无供应商名称):
EXTDIR/Classes/ViewHelpers/SomeViewHelper.php
Run Code Online (Sandbox Code Playgroud)
您还需要确保为viewHelper使用了正确的名称空间(如果您使用的是TYPO3 6+,则不要使用旧的Tx_类,而要使用名称空间)。
<?php
namespace VendorName\Extname\ViewHelpers;
class SomeViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
public function initializeArguments() { }
public function render() {
return 7;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3749 次 |
| 最近记录: |