【问题标题】:Laravel SEO friendly URLsLaravel SEO 友好的 URL
【发布时间】:2021-08-14 06:03:41
【问题描述】:

我开始学习 laravel,但不知道如何解决问题。 例如,如果我想为产品创建路线,我可以使用如下路线。

Route::get('/product/{slug}',[ProductController::class,'index']);

在这种方法中,我们会得到类似 localhost/product/macbook-pro 的内容。但是我想创建一个像 localhost/macbook-pro 这样的 url。在我的项目中,我使用 $route 变量使用普通 PHP 执行此操作,我在数据库中创建了一个名为 links 的表并将链接保存在其中。我正在做如下表结构和PHP端控制。 网址 |类型 | type_id -- | -- | -- macbook-pro |产品 | 1 微星笔记本电脑 |产品 | 2

if ($query = DB::table('links')
    ->where('url', route(0))
    ->first()
    ) {
    $type_id = $query['type_id'];
    $route[0] = $query['type'];
}

我怎样才能在 laravel 中获得相同的方法?

【问题讨论】:

标签: php laravel


【解决方案1】:

您可以使用Implicit Binding自定义密钥

Route::get('/{product:slug}',[ProductController::class,'index']);

这样,您的产品模型中需要唯一字段slug

【讨论】:

  • 多次使用会导致性能问题吗?用于产品、类别、品牌等。
  • 不——您只需在模型中指定关键字进行搜索。将索引设置为 slug 字段 - 它会像按 id 搜索一样快
猜你喜欢
  • 2017-03-06
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 2011-01-22
  • 2016-04-13
  • 2014-04-16
相关资源
最近更新 更多