【问题标题】:usign foreign model in own viewhelper as argument在自己的视图助手中使用外国模型作为参数
【发布时间】:2020-11-10 20:32:49
【问题描述】:

从流体,我称我的 viewhelper-class {adr} 是一个 tt_address 数组 → FriendsOfTYPO3\TtAddress\Domain\Model\Address

在 viewhelper 中我注册了参数

    use FriendsOfTYPO3\TtAddress\Domain\Model\Address;
    public function initializeArguments() {
        $this->registerArgument('adr', 'FriendsOfTYPO3\TtAddress\Domain\Model\Address', 'the addresses', true);
    }

此操作失败并显示以下消息: 参数“adr”注册为“FriendsOfTYPO3\TtAddress\Domain\Model\Address”类型,但在视图助手中属于“TYPO3\CMS\Extbase\Persistence\Generic\QueryResult”类型

如何接收要使用的 adr-array。 感谢您的帮助!

【问题讨论】:

  • 在控制器中,您可以将地址作为数组传递给视图:$this->view->assign('adr', $address->toArray());
  • 我在没有控制器的情况下试试这个。只是一个 viewhelper 和 tt_address 模板。我尝试采用“使用 TYPO3\CMS\Extbase\Persistence\Generic\QueryResult;”的帮助, 坏的尝试。我缺什么课?
  • 那么你必须接受 \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult 作为 viewhelper 中的参数:$this->registerArgument('adr', 'TYPO3\CMS\Extbase\Persistence\Generic\QueryResult', 'the addresses', true); }
  • 如果需要,您可以将对象转换为数组。

标签: typo3 view-helpers


【解决方案1】:

如果您的 VH 必须接受多个地址,那么您的 ViewHelper 参数不得将查询结果中包含的任何对象的类名注册为数据类型。

相反,您必须使用TYPO3\CMS\Extbase\Persistence\Generic\QueryResult 类型注册参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多