如果可能的话......这会怎么做? Laravel 5.5
route('section.category.subcategory',$subcategory->id)
必须输出(routes / web.php也有get :: set)
/section/{parent_slug}/{subcategory_slug}
我可以轻松做到
route('section.category.subcategory',[
'subcategory_slug' => $subcategory->slug,
'parent_slug'=>$parent->slug
]
);
但我试图避免不得不一直宣布这些事情。
我认为模型中的getRouteKeyName是第一个去的地方,但它只能找到一个变量。
RouteHandler不是做任何事情的地方,因为它读取了网址,而不是输出它?
我假设在一些文件中我不知道我将不得不设置这种逻辑。
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])
拥有需要使用的所有变量。
答案 0 :(得分:1)
我认为这个助手是个不错的选择,所以你可以像这样创建网址:
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
];
}
如果您还没有帮助文件,可以使用这种方式创建一个帮助文件Laravel - require php script in a service provider