gpt4 book ai didi

parameter-passing - 打字错误3。在 FLUID View Helpers 中将对象作为参数传递

转载 作者:行者123 更新时间:2023-12-04 07:44:01 25 4
gpt4 key购买 nike

在下面的代码中,books 是包含某些属性的 book 对象的列表。通过点击标题,它会进入一个 Action display

流体模板是

 <f:for each="books" as="book">
<f:link.action action="display" arguments="{book: book}"> {book.title} </f:link.action>
</f:for>

在 Controller 中

public function displayAction(){
print_r($this->request->getArguments());
}

这里没有设置book的值。 [书] => 空。我尝试打印它的类,它仍然给我 null。

当我将参数作为 book.title 而不是整个对象发送时,它工作正常

我在这里错过了什么?这是将对象作为参数传递的正确方法吗?

编辑:

最初我尝试过这种方式。

public function displayAction(\TYPO3\MyExt\Domain\Model\Book $book) {}

但这给了我

Exception while property mapping at property path "":No converter found which can be used to convert from "string" to "TYPO3\MyExt\Domain\Model\Book"

类 Book 是我手动创建的,没有在扩展构建器下注册。

最佳答案

您可以尝试使用操作参数:

     public function myAction(Tx_MyExt_Domain_Model_Book $book) {
$this->view->assignMultiple(array(
'title' => $book->getTitle(),
'label' => $book->getLabel(),
'content' => $book->getContent()
));
}

编辑:我更新了示例。

更新:

它适用于 book.title 因为它只是一个字符串。当您想要一个完整的书籍对象时,需要在某些存储中找到它。例如数据库。因此,这意味着您需要一个模型和一个存储库。也是 tca 和表文件中的一个条目。最好使用扩展构建器创建您的模型,一开始会更容易、更安全。

关于parameter-passing - 打字错误3。在 FLUID View Helpers 中将对象作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17319086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com