【问题标题】:How to debug `Validation failed while trying to call showAction` in another extension in TYPO3如何在 TYPO3 的另一个扩展中尝试调用 showAction 时调试“验证失败”
【发布时间】:2018-08-06 14:00:03
【问题描述】:

我在另一个扩展中得到Validation failed while trying to call showAction,但由于我开发的扩展。现在我不知道在哪里/如何调试问题。有些东西告诉我它应该在setup.txt

我的扩展是否可能与其他扩展发生冲突?因为如果我的扩展程序被停用,那么这个错误就会消失。那么如何调试问题可能在我的扩展中?

【问题讨论】:

    标签: typo3 typo3-7.6.x typo3-8.x typo3-extensions


    【解决方案1】:

    当作为参数传递的模型无效时会发生此错误。

    例如public function showAction(\Vendor\ExtName\Domain\Model\MyClass $myClass),Extbase 尝试验证模型$myClass

    您可以查看模型无效的原因(首选方式),也可以通过在函数头中添加 @ignorevalidation $myClass 来说明 Extbase 不验证类:

    /**
     * @param \Vendor\ExtName\Domain\Model\MyClass $myClass
     * @ignorevalidation $myClass
     */
    public function showAction(\Vendor\ExtName\Domain\Model\MyClass $myClass)
    {
        ...
    }
    

    当您要查找可能的无效条目时,您需要检查模型的代码。更多您可以在这里找到:https://docs.typo3.org/typo3cms/ExtbaseFluidBook/9-CrosscuttingConcerns/2-validating-domain-objects.html

    【讨论】:

    • 但问题是我的扩展工作正常,它的另一个扩展在打开详细视图时会引发此错误。但不知何故,它连接到我的扩展程序,我无法弄清楚,因为他们说当我的扩展程序被停用时错误消失了。那么为什么他们的showAction 会验证我的扩展程序的showAction
    • 这个错误还特别显示了另一个扩展的showAction方法抛出的错误,因为显示的路径属于他们的控制器
    • 请概述一下您使用哪些扩展程序?这两个分机都是您/您的公司的吗?是 TER 的“其他”扩展名吗?它始终取决于您发送的型号。如果您发送的模型无效,则会显示错误。查看您发送的模型并查看是否有无效的字段。请阅读官方文档。
    • 不,这是客户从其他人那里开发的自定义扩展,它与我的扩展有某种冲突。我重复一遍,当我查看模型的详细信息页面时,我的扩展程序中确实出现了 NOT 问题,而是出现在另一个扩展程序中模型的详细信息页面中。当我的扩展程序被停用时它会消失。如果他们的编码可能有问题,那么我可以通知他们,但我需要先从我这边确定,因此为什么我需要一种方法来调试这个错误。
    • 问题是模型无效。验证没有意义,或者模型在发送到 showAction 时无效。您需要查看哪些字段具有验证,并查看进入 showAction 的模型。这就是第一步。
    猜你喜欢
    • 2017-03-27
    • 2017-04-02
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多