簡體   English   中英

Typo3錯誤,部分顯示

[英]Typo3 Error with partial

我有這個動作:

/**
 * 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>

嘗試打開頁面時,我只會看到一個空白頁面。 在我的Apache error.log中,出現以下行:

PHP Fatal error:  Call to a member function setParent() on a non-object in /var/www/typo3_src-6.2.x/typo3/sysext/extbase/Classes/Error/Result.php on line 216

如果我刪除

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

從視圖中刪除

$this->view->assign('user',$dbuser);

從操作中可以正確加載網站。
我嘗試渲染的部分包含以下內容:

<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包含“ setReturnRawQueryResult(TRUE)”,否則切勿將extbase結果視為數組。 要從結果中獲取第一個條目,請使用getFirst()。 這樣,您就不會破壞storageObject。 另一種方法是使用toArray()。

如果您執行“ print_r($ 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM