我遇到了 slug 的障碍,因此寻求您的专家建议。
我们有司机表、汽车表、车队所有者表。
- 司机有车
- 车队所有者有拥有汽车的司机
我正在尝试按如下方式创建 slug:
www.example.com/drivers/driver-name
www.example.com/cars/car-name
www.example.com/fleet-owners/fleet-owner-name
在我的 webapp 中,我使用 eloquent-sluggable 实现了 slug,如下所示。
在驱动程序模型中,我创建了一个 sluggable 方法,如下所示
protected $sluggable = [
'build_from' => 'user.name',
'save_to' => 'slug',
];
对于驱动程序,它使用 user.name 并保存相应的 slug,它对驱动程序和卡都按预期工作。
但是对于车队所有者,我无法执行此操作,因为对于车队所有者,驾驶员姓名存储为驾驶员姓名,但我无法引用此名称或为此创建 slug。
最佳答案
我没有使用过 Eloquent Sluggable 并且不确定我是否理解你的数据库模式,但假设 Fleet Owner 模型有一个/属于一个 Driver 模型实例,这样的事情可能会起作用。
public function getNameAttribute()
{
return $this->driver->name;
}
那么 Fleet Owner 模型将有一个名称属性,Sluggable 可以使用该属性:
protected $sluggable = [
'build_from' => 'name',
'save_to' => 'slug',
];
您必须确保车队所有者表上有一个 slug 列才能使其正常工作。
关于php - Laravel 5 - Slug 实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37268349/