我正在尝试为laravel制作我自己的简单CMS。我现在可以添加页面,并向他们展示我唯一的问题是页面URL。
途径:
Route::group(array('prefix' => 'admin', 'before' => 'auth.admin'), function()
{
Route::resource('pages', 'App\Controllers\Admin\PagesController');
}
这是我的链接:http://domain.com/admin/pages/2访问我的页面与id 2,在我的数据库中,我有一个slug列我如何才能改变链接到属于id 2的slug,所以我得到以下链接:
http://domain.com/slug
希望你能帮助我!
2条答案
按热度按时间kuuvgm7e1#
您需要设置的路径为
然后在你的控制器里
nvbavucw2#
在Laravel 9中,您可能已经使用模型绑定来实现这一点。
使用资源路由控制器时...
1.在web.php中,使用except来挑选出您想要与自定义url一起使用的操作
1.确保生成“自定义url”并将其存储在某个位置以用作url。例如,标题“Elon musk goes to the moon”可能存储为“
elon-musk-goes-to-the-moon
我们通过以下方式完成此操作主计长
'slug' => Str::slug($request->input('blog_title'))
Str::slug1.如果您希望模型绑定在检索给定的模型类时总是使用数据库列而不是id,您可以覆盖Eloquent模型上的getRouteKeyName方法:
4.注意我的路线在Route::get('/blog/{anime}','AnimeBlogController@ show')中有一个博客/{anime};
1.{anime}必须匹配您在资源路线
public function show(Anime $anime)
上设置的变量动画是我的数据库中的表的名称,
$anime
引用Route::get('/blog/{anime}'
1.最后,使用slug获取数据返回视图(我试图解释模型绑定)。