簡體   English   中英

路徑“”的參數“”必須與“ [^ /] ++”(給出的“”)匹配,以生成相應的URL

[英]Parameter “” for route “” must match “[^/]++” (“” given) to generate a corresponding URL

我有這個Facade實體,每次嘗試修改包含以下細枝的表單時,都會返回此錯誤:

An exception has been thrown during the rendering of a template ("Parameter "buildings_id" for route "addFacade" must match "[^/]++" ("" given) to generate a corresponding URL.").

我的控制器動作:

/**
 * @Route("/{id}/card", name="business_card", methods="GET|POST|DELETE", defaults={"business_id"=1})
 * @param Request $request
 * @param Business $business
 * @return Response
 */
public function show_card(Request $request, Business $business): Response
{

    $businessCard = $business->getBusinessCard();

    $formCard = $this->createForm(BusinessCardType::class, $businessCard);
    $formCard->handleRequest($request);

    if (($formCard->isSubmitted() && $formCard->isValid())) {

        $businessCard = $formCard->getData();
        $em = $this->getDoctrine()->getManager();

        $em->persist($businessCard);
        $em->flush();

        return $this->redirectToRoute('business_card', ['id' => $business->getId()]);
    }

    $dict = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
    return $this->render('business/card.html.twig', ['business' => $business, 'formCard' => $formCard->createView(), 'dict' => $dict]);
}

我的樹枝模板:

{% for buildingsInfo in business.businessCard.buildingsInfos %}
{% set idBuildingsInfo = idBuildingsInfo|merge([buildingsInfo.id]) %}
<a class="btn btn-outline-primary mb-3" href="{{ path("addFacade",{"buildings_id": idBuildingsInfo[j] }) }}">Ajouter une façade</a>
{% endfor %}

我試圖轉儲idBuildingsInfo變量,但是數組的所有值都是數字(無null值)。 我還嘗試在控制器中為參數buildings_id添加一個默認值,但是它似乎沒有任何改變。

仔細閱讀錯誤

參數“ buildings_id” ...(給出“”)

您傳遞的參數值為空(“”)

{{ path("addFacade",{"buildings_id": idBuildingsInfo[j] }) }}

是否定義了j 或者該行應如下所示:

{{ path("addFacade",{"buildings_id": idBuildingsInfo["j"] }) }}

我的猜測是該錯誤可能與以下方面有關:

href="{{ path("addFacade",{"buildings_id": idBuildingsInfo[j] }) }}

也許我們會set一個變量為我們的href ,然后逃離那些" S中的需要逃避,我們的代碼將如下所示:

{% for buildingsInfo in business.businessCard.buildingsInfos %}
{% set idBuildingsInfo = idBuildingsInfo|merge([buildingsInfo.id]) %}
{% set path = "\"addFacade\", {\"buildings_id\": idBuildingsInfo[j]" %}
<a class="btn btn-outline-primary mb-3" href="{{ path }}">Ajouter une façade</a>
{% endfor %}

或有點相似。

暫無
暫無

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

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