Laravel 5路由返回视图,但改变url


Laravel 5 route returns view but changes url

我甚至不确定这是否可能,但我想做的是这样。我在数据库中存储不同的页面模块。当有人去到一个页面与这些模块之一,pageController识别它的模块和(使用重定向路径存储与此模块在DB)重定向到一个get路由,这就是我如何知道什么信息拉并放在页面上。

例如,如果有人要去/photo-album, pageController会识别出这是一个页面模块,并返回重定向(redirect/photo/albums),然后重定向到该路由。

Route::get('redirect/photo/albums', ['uses' =>'PageController@getPhotoAlbums']);

问题是url变成/redirect/photo/albums。我希望它保持/photo-album

我这样做的原因是因为会有几个模块存储,每个模块将包含不同的东西(想想博客,相册,视频库等)。我需要重定向,以找出什么去那个页面和什么视图显示。在这个例子中PageController@getPhotoAlbums到getPhotoAlbums方法,提取照片并提供photoalbums视图。

也许有更好的方法,我愿意接受。

我没有足够的代表来评论,所以我将把这个作为答案,希望它能有所帮助:

你真的不应该从另一个控制器获取数据。所有数据都应该在Eloquent模型中可用。这对MVC架构很重要。

Laravel:在不改变url的情况下在另一个控制器中加载方法

所以本质上,当你的控制器识别它作为一个页面模块,它应该使用雄辩从DB拉数据,然后传递给视图。这将意味着原始请求URL仍然保留。