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>