gpt4 book ai didi

Laravel Routing for SEO 路径/表格标题

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:45:02 24 4
gpt4 key购买 nike

我需要解决我的问题

通常人们将 url 路径设置为 mylaravelsite/products/{id}前任。 mylaravelsite/产品/1

我正在建立一个网站,但我需要创建像 mylaravelsite/products/{title} 这样的 url 路径例子:mylaravelsite/产品/产品名称

在执行了Alpha 解决方案之后就可以了:)

最佳答案

你可以的。如果您想将参数用作 slug/string 而不是 id/numeric 并不重要。只需像为数字 id 参数声明的方式一样声明路由。例如,您可以这样声明一条路线:

Route::get(
'/products/{title}',
array('uses' => 'ProductController@show', 'as' => 'product.show')
);

然后,此路由的 URL 可以是 http://yourdomain.com/products/name-of-product

人们使用 id 的原因是,大多数人通常使用 auto-incremented numeric id primary key 在他们的数据库中,使用类似唯一的东西是个好主意。您只需确保您的产品也是独一无二的,然后使用以下方法将它们作为 slug 插入数据库中:

$product->title = Str::slug(Input::get('product_title'));

此外,您可以在路由中使用 where 条件来确保提供给路由的产品名称是使用如下内容的字符串:

Route::get(
'/products/{title}',
array('uses' => 'ProductController@show', 'as' => 'product.show')
)->where('title', '[A-Za-z-]+');

这是我出于同样原因使用的宏(从 Slug 到标题):

Str::macro('toTitle', function($str){
return ucwords(str_replace('-', ' ', $str));
});

您也可以使用普通的辅助函数,如果需要,您也可以使用 preg_replace

关于Laravel Routing for SEO 路径/表格标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com