Php Laravel路由数据库

Php Laravel路由数据库,php,database,laravel,routing,Php,Database,Laravel,Routing,我想用url术语在数据库中保存一些页面信息,当该页面要通过url访问时,可以在url中显示这些信息。考虑到我有一个网站名为 www. 现在我的网站上有一个关于我们的页面,上面写着www.example.com/。 现在我想在数据库中保存关于我们页面的详细信息,比如标题、描述和url\u名称 因此,如果我更新了about us页面的内容,并将url_name设置为“关于我们的信息”” 当我从我的网站上访问关于我们的链接时。因此,它应该重定向到URLwww.example.com/something

我想用url术语在数据库中保存一些页面信息,当该页面要通过url访问时,可以在url中显示这些信息。考虑到我有一个网站名为<强> www. 现在我的网站上有一个关于我们的页面,上面写着www.example.com/。

现在我想在数据库中保存关于我们页面的详细信息,比如标题、描述和url\u名称 因此,如果我更新了about us页面的内容,并将url_name设置为“关于我们的信息”

当我从我的网站上访问关于我们的链接时。因此,它应该重定向到URLwww.example.com/something about-us的页面,而不是以前的URL www.example.com/about-us

如何在Laravel中创建这种数据库保存的路由


感谢您在advanced中的帮助。

以下是我的想法。我不认为拉威尔能为你的问题提供这样的解决方案,尽管不是百分之百

您可以做的是重写自己的路由文件。首先,在数据库中保存有关动态路由的信息,并在更新这些信息时,确保相应地修改了相关的数据库条目

第二,当请求路由时,搜索数据库并返回url作为重定向参数


恐怕您必须自己做,就像使用Laravel构造API一样。如果您有任何问题,我随时准备提供帮助。

我现在无法测试。。。但也许你可以做一些类似的事情:

Route::get('user/{pageid}', function($pageid)
{
    $page_content = //Search DB for page content with url_name = pageid;
    return View::make('page.content', array('page_content' => $page_content));
});

创建一个
slug
字段。然后根据slug构建URL。比如
route('someroute',[$slug])
。。。。将从数据库中检索此$slug。因此,如果您更新slug,链接将自动更新。是的,我们可以这样做,但当我创建此链接时,我的路由将是route::get({slug}',function($slug){//code from db to show page and redirect to view})。然后,正如您所建议的,它将适用于www.example.com/about-us,但另一个路由(如www.example.com/search)应该调用搜索控制器的索引操作。只是因为前面的规则是它将调用第一个匹配路径。是吗?当你在搜索之后添加slug路线时,laravel会先尝试匹配搜索。你只需要注意路线模式。此
{slug}
将位于底部。laravel从上到下匹配路由。请尝试此路由::get({categories}),“Web”\CategoryController@categoryPosts“)->其中('categories',”^[a-zA-Z0-9-\/]+$)->名称('categority.pages');