gpt4 book ai didi

TYPO3 Extbase switchableControllerActions

转载 作者:行者123 更新时间:2023-12-02 17:36:45 25 4
gpt4 key购买 nike

我有自己的扩展,它有 Controller 和两个 Action :listAction 和 showAction。
问题:我可以在同一个页面显示两个 Action 吗?

在特定页面上,我用自己的插件创建了一个插入插件记录,在插件后端配置的弹性形式中,我通过 switchableControllerActions 字段选择了“列表操作”。列表操作包含产品列表以及指向产品展示操作的链接。

那我想要什么?

我有页面产品。网址是 example.com/products(这是我的列表操作)
对于展示操作,我想要像 example.com/products/name-of-product

这样的 URL

我找到了具有此功能的扩展。这是gb_events .我注意到在插件的 flexform 的 switchableControllerActions 字段中有这样的东西:

<switchableControllerActions>
<TCEforms>
<label>LLL:EXT:gb_events/Resources/Private/Language/locallang_db.xlf:flexform.default.switchableControllerActions</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">LLL:EXT:gb_events/Resources/Private/Language/locallang_db.xlf:flexform.default.switchableControllerActions.upcoming</numIndex>
<numIndex index="1">Event->upcoming;Event->list;Event->calendar;Event->show;Event->export</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">LLL:EXT:gb_events/Resources/Private/Language/locallang_db.xlf:flexform.default.switchableControllerActions.list</numIndex>
<numIndex index="1">Event->list;Event->upcoming;Event->calendar;Event->show;Event->export</numIndex>
</numIndex>
<numIndex index="2" type="array">
<numIndex index="0">LLL:EXT:gb_events/Resources/Private/Language/locallang_db.xlf:flexform.default.switchableControllerActions.calendar</numIndex>
<numIndex index="1">Event->calendar;Event->upcoming;Event->list;Event->show;Event->export</numIndex>
</numIndex>
<numIndex index="3" type="array">
<numIndex index="0">LLL:EXT:gb_events/Resources/Private/Language/locallang_db.xlf:flexform.default.switchableControllerActions.details</numIndex>
<numIndex index="1">Event->show;Event->list;Event->upcoming;Event->calendar;Event->export</numIndex>
</numIndex>
</items>
<maxitems>1</maxitems>
<size>1</size>
</config>
<onChange>reload</onChange>
</TCEforms>
</switchableControllerActions>

我已经更新了我的 flexform 配置。但它仍然不起作用。当我点击显示 Action 的链接后,我有相同的 ListView 。

提前致谢。我将不胜感激任何帮助。

最佳答案

结构上更合理的方法是将这种逻辑保留在 Controller 中。

使您的 showAction 成为默认的,并检查其初始化中的参数。如果没有给出产品,或者无法加载指定的产品,则转到列表操作。

/**
* initialize action show
* @return void
*/
public function initializeShowAction() {
if($this->request->hasArgument('product')){
if( $product=$this->stadtRepository->findByUid(
intval($this->request->getArgument('product'))
) ){
$this->request->setArgument('product',$product);
return;
}
}
$this->forward('list');
}

关于TYPO3 Extbase switchableControllerActions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26264498/

25 4 0
文章推荐: .net - 比较两个列表以获取同时出现在两个列表中的对象
文章推荐: r - 错误 write_csv 认为 data.frame 不为 TRUE,而 write.csv 为 TRUE
文章推荐: asp.net - 升级到 MVC 5.2.0.0 导致异常 "Method not found: ' Boolean System.Web.WebPages.BuildManagerWrapper.IsNonUpdateablePrecompiledApp”
文章推荐: html - 在 中使用