Select 在 TYPO3 扩展中转发时的第一个对象

Select first object when forwarding in a TYPO3 extension

目前,我的代码如下所示:

public function listAction() {
    $this->forward('show', NULL, NULL, array('myArgument' => 14));
}

它将用户直接转到 'show'-视图。总是转发给UID为14的对象,当用户删除这个对象时,会报错。

代码应该将用户转到列表中的第一个元素。有没有类似forward('show', NULL, NULL, array('myArgument' => first))的东西?

ext_localconf.php 中使用 'show' 作为默认操作也会导致错误,因为我猜没有定义参数。

没有这样的东西,但是有什么原因不能通过数据库获取UID吗?

public function listAction() {
    $firstObject = $this->myobjectRepository->findFirstObject(); // just pseudocode

    $this->forward('show', NULL, NULL, array('myArgument' => $firstObject->getUid()));
}
public function listAction() {
    $firstObject = $this->myobjectRepository->findAll()->getFirst(); // just pseudocode

    $this->forward('show', NULL, NULL, array('myArgument' => $firstObject->getUid()));
}

有了这个,你将把你的第一个对象的 uid 发送到另一个方法(例如:show),因此你需要通过调用你的存储库(例如 findByUid)来取回对象

您还可以对 show 方法使用正确的注释,以便它会将您的参数视为一个对象

/**
     * action show
     *
     * @param \vendor\ext\Domain\Model\ModelName $modelName
     *
     * @return void
     */
    public function showAction(\vendor\ext\Domain\Model\ModelName $modelName) {
        $this->view->assign('modelName', $modelName);
    }