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);
}
目前,我的代码如下所示:
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);
}