【发布时间】: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 中获得相同的方法?
【问题讨论】:
-
虽然你的问题需要更多的解释来回答,但现在插入 url 使用帮助器
slug看到这个:laravel.com/docs/8.x/helpers#method-fluent-str-slug -
我可以创建 slug url。我的问题是如何通过其 slug url 动态获取产品,而无需为产品、类别等编写前缀。
-
如果你想自动使用 slug 那么首先实现路由模型绑定更好地使用
resource控制器看这个:laravel.com/docs/8.x/routing#route-model-binding