【问题标题】:How to create custome route in laravel 4 for url friendly?如何在 laravel 4 中为 url 友好创建自定义路由?
【发布时间】:2014-11-15 11:39:43
【问题描述】:

我正在使用 laravel 4 路由为我的项目创建友好的 url。我想用这种格式获取 url: http://www.mywebsite.com/post/post-slug-content-123 。 post-slug-content 是我的 slug,123 是我的帖子 ID。 我的路线:

Route::get('post/{name}-{id}','postController@detail'); 

它不起作用,因为 laravel 检测“post”是我的 {name} 变量,“slug”是我的 {id} 变量,但我希望“post-slug-content”是 {name} 而 123 是 {id} .有什么想法???

【问题讨论】:

  • 你能显示postController::detail()
  • 为什么你需要 slug 和帖子的 id?任何一个都足以识别您的帖子。如果你真的需要两者,你需要用斜杠分隔它们:Route::get('post/{name}/{id}','postController@detail');
  • 如果我使用斜线,它可以正常工作,但我想保留两者以用于 SEO。也许我会尝试斜线:D

标签: php laravel laravel-4 routes


【解决方案1】:

使用- 将不起作用,它会考虑使用哪个- post-slug-content-123

如果您的网址是 http://www.mywebsite.com/post/post_slug_content-123

http://www.mywebsite.com/post/postSlugContent-123尝试使用

Route::get('post/{name}-{id}','postController@detail');  

因为您有多个-,它会将其视为单独的网址

或者你可以试试

1:Route::get('post/{nameId}','postController@detail'); 您的姓名和 ID 都存在,进一步您可以在您的 postController 中破坏它们。

2: Route::get('post/{name}/{id}','postController@detail'); 这可以正常工作

或使用stackoverflow类型id followed by name

3:Route::get('post/{id}/{name}','postController@detail');

你也可以使用@itachi所说的http://www.mywebsite.com/post/post-slug-content_123

4:Route::get('post/{name}_{id}','postController@detail');

传递参数的进一步参考Here

【讨论】:

  • 感谢您的回答!
  • 你可以使用,http://www.mywebsite.com/post/post-slug-content_123。这是一个比上面更好的结构。
  • 那太好了@itachi,如果您不介意我可以将其添加到我的答案中吗?可能对未来的访问者有很大帮助..
  • @Ronser 随时添加。选项越多越好。
猜你喜欢
  • 2011-01-06
  • 1970-01-01
  • 2013-09-03
  • 2011-11-26
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2013-09-22
相关资源
最近更新 更多