仅使用 ID 的两个变量的输出路由 url

Output route url with two variables using only ID

如果可能..这将如何完成? Laravel 5.5

route('section.category.subcategory',$subcategory->id) 

必须输出(routes/web.php 也有 get:: 设置)

/section/{parent_slug}/{subcategory_slug}

我可以轻松做到

route('section.category.subcategory',[
                                     'subcategory_slug' => $subcategory->slug, 
                                     'parent_slug'=>$parent->slug
                                     ]
);

但我试图避免必须一直声明这些事情。

我认为模型中的 getRouteKeyName 是第一个去的地方,但据我所知它只绑定到一个变量。

RouteHandler 也不是做任何事情的地方,因为它读取 url,而不是正确输出它?

我假设在一些我不知道的文件中我必须设置这种逻辑。

if(requested_route is section.category.subcategory)){
   // get the parent_id of ID provided,
   // get parent's slug
   // build the url.
}

更好的是,我想我可以在拉出子类别列表时进行左连接,所以我有 $subcategory->parent_slug 而不是 $parent->slug。这样

route('section.category.subcategory',[$subcategory]) 

具有它需要使用的所有变量。

我认为这个助手是一个不错的选择,因此您可以像这样创建 url:

route('section.category.subcategory',build_category_parameters($subcategory)) 

你可以这样创建函数:

function build_category_parameters($subcategory)
{
   // here any logic that is needed

   // here return array something like this
   return [ 'subcategory_slug' => $subcategory->slug, 
            'parent_slug'=> $subcategory->parent->slug
          ];
}

如果您还没有帮助文件,您可以使用这种方式创建一个