通过受限访问,该值必须为“xx”类型错误

时间:2013-09-23 11:54:14

标签: typo3 extbase

我有一个产品数据库扩展。基于 Extbase + Fluid 。 一切都像它一样工作,但我遇到了限制访问的问题。

某些产品仅适用于特定用户群。当我设置一个组,并且有人使用direkt链接到该产品时,登录站点应该是在没有登录的情况下。

它适用于网站,但有产品我得到:

“值必须是”xx“类型,但类型为”NULL“。”错误

我也使用realUrl。

为我的分机设置了enable404forInvalidAlias,因此不存在的产品通话会导致404页面,但不幸的是我到目前为止无法处理限制访问问题。

版本为: 4.5.22 解决方案应该没有重大更新。

更新:

showAction中使用= NULL默认值定义的产品。

我的流体模板已经有了这样的条件:

<f:if condition="{product}">
...
</f:if>

来自此行的错误消息:

Tx_Extbase_MVC_Exception_InvalidArgumentValue thrown in file
\typo3\sysext\extbase\Classes\MVC\Controller\Argument.php 
in line 389.

我进行了一些调试,整个showAction都会运行。

1 个答案:

答案 0 :(得分:2)

您可以通过某种方式更改操作,以便允许产品无实例并检查流体中是否存在:

public function showAction(Tx_YourExt_Domain_Model_Product $product = NULL) ..
流体中的

<f:if condition="{product}">
   <f:then> <!-- show your product --> </f:then>
   <f:else> 
      <!-- show a login form, e.g. something you have in typoscript -->
   </f:else>
</f:if>

这样做的缺点是,你无法轻易处理正确的404。

还有一个ifAuthenticated viewhelper,结合上面的内容,它应该直接处理正确的404。我不确定是哪个TYPO3版本已经推出。