Laravel 5路由返回视图但更改URL

时间:2015-09-03 23:37:15

标签: php laravel laravel-5

我甚至不确定这是否可行,但我想要做的就是这个。我将不同的页面模块存储在数据库中。当有人进入带有这些模块之一的页面时,pageController会识别其模块并(使用与该模块一起存储在数据库中的重定向路径)将它们重定向到get路由,这就是我知道要拉出和放置什么信息的方式这页纸。

例如,如果有人要去/ photo-album,则pageController会识别出这是一个页面模块并返回重定向(重定向/照片/专辑),然后将它们重定向到该路径。

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

问题是网址会变成/重定向/照片/相册。我希望它能维护/相册

我这样做的原因是因为将存储几个模块,每个模块将包含不同的东西(想想博客,相册,视频库等)。我需要重定向来弄清楚该页面上的内容以及要显示的视图。在这种情况下,PageController @ getPhotoAlbums转到getPhotoAlbums方法,拉出照片并提供photoalbums视图。

可能有更好的方法来实现这一目标,并且我愿意接受它。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我没有足够的代表发表评论,因此我将此作为答案并希望它有所帮助:

你真的不应该从另一个控制器获取数据。您的所有数据都应该在Eloquent模型中提供。这对MVC'非常重要。架构。

此处有更多讨论:Laravel: Load method in another controller without changing the url

基本上,当您的控制器将其识别为页面模块时,它应该使用Eloquent从数据库中提取该数据,然后将其传递给View。这意味着原始请求网址仍然保留。