Php 如何在laravel中为资源路由添加附加参数
有没有办法向laravel资源路由添加额外的参数,使url看起来像Php 如何在laravel中为资源路由添加附加参数,php,laravel,parameters,controller,routes,Php,Laravel,Parameters,Controller,Routes,有没有办法向laravel资源路由添加额外的参数,使url看起来像www.blog.com/blogpost/1到www.blog.com/blogpost/1-my-first-blog blog/{id}toblog/{id}-{title} 我知道一些基本的路由参数,比如blog/{id}/{title}希望能对你有所帮助 在路由文件中: Route::get('blog/{slug}', 'BlogController@show'); // make sure not conflict
www.blog.com/blogpost/1
到www.blog.com/blogpost/1-my-first-blog
blog/{id}
toblog/{id}-{title}
我知道一些基本的路由参数,比如blog/{id}/{title}
希望能对你有所帮助
在路由文件中:
Route::get('blog/{slug}', 'BlogController@show'); // make sure not conflict with resource routes define
然后是您的BlogController
公共功能显示($slug)
{
$id=explode($slug,'-')[0];//获取帖子的id
//你的逻辑
}
安装并配置此包,然后只需执行findBySlug($slug)
。但您无法通过资源路由实现这一点
有关laravel Slaggable的更多信息,请参见
希望这有帮助。像这样做:
Route::resource('blogpost','BlogpostController',['parameters'=>['blogpost'=>'whatever']])代码>转换为/blogpost/{whatever}
OP使用ResourceController
和资源路由!你们是否正确地阅读了这个问题???@HirenGohel我认为我们需要定义新的路径来处理新的url格式,比如www.blog.com/blogpost/1-my-first-blog
。我读了你的评论,但我认为这只会改变params的名字。不要更改url格式!您可以查看文档中的命名资源路由参数
主题吗:也可以定义此在他的问题中是否有任何方法向laravel资源路由添加其他参数
,因此我认为这不是答案!你能解释一下我们如何处理从blog/{id}
到blog/{id}-{title}
格式的url吗?非常感谢。
composer require cviebrock/eloquent-sluggable:^4.3