Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 输入错误3,部分错误_Validation_Typo3_Partial_Fluid_Extbase - Fatal编程技术网

Validation 输入错误3,部分错误

Validation 输入错误3,部分错误,validation,typo3,partial,fluid,extbase,Validation,Typo3,Partial,Fluid,Extbase,我有以下行动: /** * updateForm action * * @param \Whmcs\Registration\Domain\Model\User $user * @validate $user \Whmcs\Registration\Validation\Validator\ValidateValidator * @return void */ public function updateFormAction(\Whmcs\Registration\Domain\

我有以下行动:

/**
 * updateForm action
 * 
 * @param \Whmcs\Registration\Domain\Model\User $user
 * @validate $user \Whmcs\Registration\Validation\Validator\ValidateValidator 
 * @return void
 */
public function updateFormAction(\Whmcs\Registration\Domain\Model\User $user)
{
    $dbuser = $this->userRepository->getUserByMail($user->getEMailAddress())[0];
    $this->view->assign('user',$dbuser);
}
使用此视图的:

<f:layout name="default" />
<f:section name="content">
    <legend>Benutzerdetails hinzufuegen</legend>

    <f:render partial="Error" arguments="{object:user}" />

    <f:form action="update" object="{user}" name="user" arguments="{user:user}" additionalAttributes="{role:'form'}">

        ...

    </f:form>
</f:section>
如果我删除

<f:render partial="Error" arguments="{object:user}" />
通过该操作,站点将正确加载。 我尝试渲染的部分包含以下内容:

<f:form.validationResults for="{object}">
    <f:if condition="{validationResults.flattenedErrors}">
        <div class="alert-box radius alert radius">
            <f:for each="{validationResults.flattenedErrors}" as="errors" key="propertyPath">
                <ul>
                    <f:for each="{errors}" as="error">
                        {error}
                        <br />
                    </f:for>
                </ul>
            </f:for>
        </div>
    </f:if>
</f:form.validationResults>

有人知道这个错误吗?

问题可能是这行:

$dbuser = $this->userRepository->getUserByMail($user->getEMailAddress())[0];
除非您的QuerySettings包含setReturnRawQueryResultTRUE,否则永远不要将extbase结果视为数组。要从结果中获取第一个条目,请使用getFirst。这样就不会破坏storageObject。 另一种方法是使用toArray

如果您打印$dbuser;使用当前代码,您甚至应该看到extbase发出的警告。

好的,我知道了。 简单地说,我忘了在视图中添加'。这就是我现在的观点:

<f:layout name="default" />
<f:section name="content">
    <legend>Benutzerdetails hinzufuegen</legend>

    <f:render partial="Error" arguments="{object:'user'}" />

    <f:form action="update" object="{user}" name="user" arguments="{user:'user'}" additionalAttributes="{role:'form'}">

        ...

    </f:form>
</f:section>

好的,谢谢,但问题是,当我将用户对象分配给视图时,typo3抛出异常。无论我是从数据库获取对象,还是将其设置为Null或其他。
$dbuser = $this->userRepository->getUserByMail($user->getEMailAddress())[0];
<f:layout name="default" />
<f:section name="content">
    <legend>Benutzerdetails hinzufuegen</legend>

    <f:render partial="Error" arguments="{object:'user'}" />

    <f:form action="update" object="{user}" name="user" arguments="{user:'user'}" additionalAttributes="{role:'form'}">

        ...

    </f:form>
</f:section>