Symfony 4 - Ob'ekt @ParamConverter annotatsiyasi tomonidan faqat Profiler'da topilmadi

Muammo faqat disk raskadrovka asboblar panelida paydo bo'ladi.

Bu muammoni keltirib chiqaradigan koddir

/**
   * @Route("/{category_slug}/{slug}", name="content_show")
   * @ParamConverter("content", options={"mapping": {"slug": "slug"}})
   * @ParamConverter("category", options={"mapping": {"category_slug": "slug"}})
   * @Method("GET")
   */
  public function show(Category $category, Content $content): Response
  {
    $contents = $category->getContents();
    return $this->render('content/show.html.twig', array(
      'category' => $category,
      'list' => $contents,
      'content' => $content,
    ));
  }

Bu ParamConverter-ning yagona qismi va xatolikdan oldin o'zgartirilgan yagona qism.

Sahifa to'g'ri ko'rsatiladi, hamma narsa topildi, xatoliklarni tuzatish asboblar paneli xabar bilan endi ishlamaydi:

An error occurred while loading the web debug toolbar. Open the web profiler.

Va ichkarida:

App\Entity\Content object not found by the @ParamConverter annotation.

NotFoundHttpException bilan

Men keshni tozaladim, hech narsa o'zgarmadi. Kod hali ham ishlaydi, lekin asboblar paneli og'riqli emas va men bunga nima sabab bo'lganini tushunolmayapman.

Men boshqa izohlar bilan harakat qildim:

  /**
    * @Route("/{category_slug}/{slug}", name="content_show")
    * @ParamConverter("category", class="App\Entity\Category", options={"mapping": {"category_slug": "slug"}})
    * @Method("GET")
    */

Va hokazo.. Farqi shundaki, agar men paramkonvertordan tarkibni olib tashlasam, u hali ham ishlaydi, lekin xato Turkumda.

Oldindan rahmat.

Tahrirlash: PHP 7.1.9
Composer json :

"require": {
    "php": "^7.1.3",
    "ext-iconv": "*",
    "sensio/framework-extra-bundle": "^5.1",
    "symfony/apache-pack": "^1.0",
    "symfony/console": "^4.0",
    "symfony/expression-language": "^4.0",
    "symfony/flex": "^1.0",
    "symfony/form": "^4.0",
    "symfony/framework-bundle": "^4.0",
    "symfony/lts": "^4@dev",
    "symfony/maker-bundle": "^1.0",
    "symfony/orm-pack": "^1.0",
    "symfony/security-bundle": "^4.0",
    "symfony/security-csrf": "^4.0",
    "symfony/twig-bundle": "^4.0",
    "symfony/validator": "^4.0",
    "symfony/yaml": "^4.0",
    "vich/uploader-bundle": "^1.8"
},
"require-dev": {
    "symfony/dotenv": "^4.0",
    "symfony/profiler-pack": "^1.0",
    "symfony/web-server-bundle": "^4.0"
},

person Sinuide    schedule 25.01.2018    source manba
comment
Mening yomon, faqat marshrut bilan bog'liq muammo.   -  person Sinuide    schedule 27.01.2018


Javoblar (1)


Internetda sizniki bilan bog'liq juda ko'p xatolarni ko'rdim va men ham unga duch keldim, men CRUD dan foydalanardim va mening url avvalgi yo'nalishlardan biriga mos kelardi.

Bu php bin/console router:match url buyrug'i menga qaysi marshrutdan foydalanilgani va u qanday mos kelishini aytib berish orqali yordam berdi. Menimcha, bu haqiqatan ham foydali va baham ko'rish kerak.

person Samuel RIGAUD    schedule 06.04.2020