Laravel 中的自动重定向
Posted
技术标签:
【中文标题】Laravel 中的自动重定向【英文标题】:Auto redirect in Laravel 【发布时间】:2018-09-17 21:34:02 【问题描述】:作为一个简单的例子,我想在问题 URL 重定向方面做与 *** 相同的事情。这是一个例子:
如果我去:
https://***.com/questions/29092079
我被重定向到:
https://***.com/questions/29092079/what-exactly-is-laravel
我想复制这个。
我的routes/web.php
条目是:Route::get('blog/id/slug', 'BlogController@show');
。
这按它所说的方式工作,但如果我在没有slug
的情况下导航,它不会重定向。
实现这一点的最佳方法是在控制器中设置重定向吗?
Laravel 版本:5.5
【问题讨论】:
将 slug 设为可选,并检查控制器是否为空。 对不起@Ali,我认为你误解了我想要实现的目标。如果原始请求中不存在,我想 301 重定向到包含 slug 的 URL 然后为该逻辑创建一个新方法和 url @Sohel0415 你似乎一针见血。你能在正确的道路上指导我回答吗? @Wildcard27 看我的回答,它可能会给你一个想法 【参考方案1】:首先制作two
routes
Route::get('blog/blog', 'BlogController@redirectWithSlug');
Route::get('blog/id/slug', 'BlogController@show');
在你的BlogController
public function redirectWithSlug(Blog $blog)
return redirect('blog/'.$blog_id.'/'.$blog->slug);
【讨论】:
谢谢!有没有办法用资源控制器做到这一点? 是的,你可以用这个逻辑改变你的 show 方法的逻辑以上是关于Laravel 中的自动重定向的主要内容,如果未能解决你的问题,请参考以下文章