目前,我的代码如下所示:
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'作为默认操作也会导致错误,因为我没有定义任何参数。
答案 0 :(得分:0)
没有这样的想法,但有没有理由不通过数据库获取UID?
public function listAction() {
$firstObject = $this->myobjectRepository->findFirstObject(); // just pseudocode
$this->forward('show', NULL, NULL, array('myArgument' => $firstObject->getUid()));
}
答案 1 :(得分:0)
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);
}