我有两个模型,Group
和Page
,一个组可以有很多页面。我正在尝试基于这些模型动态创建路由,以便自动创建/group-id/page-id 类型的结构。
这是我到目前为止得到的:
foreach(AppGroup::all() as $group)
{
Route::prefix($group->id)->group(function ()
{
foreach($group->pages as $page)
{
Route::get($page, function () {
return view($page->route_name);
});
}
});
}
出现的问题是,路由是在匿名函数中定义的,它们无法访问$group
和$page
变量。将这些变量传递给函数也不起作用,因为它接受来自 URL 参数的变量。
发布 10 秒后意识到我可以以更 laravel-y 的方式管理它
Route::get('/{group}/{page}', function (AppGroup $group, AppPage $page)
{
return view($page->route_name);
});