首頁  >  問答  >  主體

Symfony實體參數轉換器無法正確取得路由項

<p>我有一個需要取得類別和子類別的路由,路由的形式如下:</p> <pre class="brush:php;toolbar:false;">#[Route('/{slug}/{subSlug}', name: 'subcategory')] #[Entity('category', expr: 'repository.findOneBySlug(slug)')] #[Entity('subcategory', expr: 'repository.findOneBySlug(subSlug)')] public function subcat(Category $cat, Subcategory $sub): Response</pre> <p>我嘗試訪問 <code>/mtg/dmr</code>,但是我得到了一個404的物件未找到錯誤,由@ParamConverter引起。 當我在Doctrine日誌中查看時,系統在正確的表中查找,但是對於兩個都在尋找<code>mtg</code>而不是先找<code>mtg</code>然後找< code>dmr</code>。有什麼想法是怎麼回事嗎? </p>
P粉885562567P粉885562567390 天前393

全部回覆(1)我來回復

  • P粉129731808

    P粉1297318082023-08-29 19:01:43

    DOC範例:

    #
    #[Route('/blog/{date}/{slug}/comments/{comment_slug}')]
    #[ParamConverter('post', options: ['mapping' => ['date' => 'date', 'slug' => 'slug']])]
    #[ParamConverter('comment', options: ['mapping' => ['comment_slug' => 'slug']])]
    public function showComment(Post $post, Comment $comment)
    {
    }

    所以,在您的情況下,您必須有:

    #
    #[Route('/{slug}/{subSlug}', name: 'subcategory')]
    #[ParamConverter('cat', options: ['mapping' => ['slug' => 'slug']])]
    #[ParamConverter('sub', options: ['mapping' => ['subSlug' => 'slug']])]
    public function (Category $cat, Subcategory $sub): Response
    {
    }

    回覆
    0
  • 取消回覆