Laravel 5 - Slug 实现
Laravel 5 - Slug implementation
我遇到了鼻涕虫的障碍,因此寻求您的专家建议。
我们有 drivers table, 汽车 table, fleet-owners table.
- driver有车
- 车队所有者中有 driver 人拥有汽车
我正在尝试按如下方式创建 slug:
www.example.com/drivers/driver-name
www.example.com/cars/car-name
www.example.com/fleet-owners/fleet-owner-name
在我的网络应用程序中,我使用 eloquent-sluggable 实现了 slug,如下所示,具有各自的特征。
在 driver 模型中,我创建了一个 sluggable 方法,如下所示
protected $sluggable = [
'build_from' => 'user.name',
'save_to' => 'slug',
];
对于 drivers,它使用 user.name 并保存相应的 slug,它对 drivers 和卡片都按预期工作。
但对于舰队所有者,我无法执行此操作,因为对于舰队所有者,driver 的名称存储为 driver 名称,但我无法引用它为此命名或创建 slug。
我没有使用过 Eloquent Sluggable,我不确定我是否理解你的数据库模式,但假设 Fleet Owner 模型有 One/Belongs To a Driver 模型,这样的东西可能会起作用实例.
public function getNameAttribute()
{
return $this->driver->name;
}
然后 Fleet Owner 模型将具有 Sluggable 可以使用的名称属性:
protected $sluggable = [
'build_from' => 'name',
'save_to' => 'slug',
];
您必须确保您的舰队所有者上有一个 slug 列 table 才能正常工作。
我能够根据下面 Josh 的建议解决问题。在模型中我创建了一个方法
public function getNameAttribute()
{
return $this->driver->name;
}
然后在 sluggable 中只需在 build_to 中使用 'name' 即可。
我遇到了鼻涕虫的障碍,因此寻求您的专家建议。
我们有 drivers table, 汽车 table, fleet-owners table.
- driver有车
- 车队所有者中有 driver 人拥有汽车
我正在尝试按如下方式创建 slug:
www.example.com/drivers/driver-name
www.example.com/cars/car-name
www.example.com/fleet-owners/fleet-owner-name
在我的网络应用程序中,我使用 eloquent-sluggable 实现了 slug,如下所示,具有各自的特征。
在 driver 模型中,我创建了一个 sluggable 方法,如下所示
protected $sluggable = [
'build_from' => 'user.name',
'save_to' => 'slug',
];
对于 drivers,它使用 user.name 并保存相应的 slug,它对 drivers 和卡片都按预期工作。
但对于舰队所有者,我无法执行此操作,因为对于舰队所有者,driver 的名称存储为 driver 名称,但我无法引用它为此命名或创建 slug。
我没有使用过 Eloquent Sluggable,我不确定我是否理解你的数据库模式,但假设 Fleet Owner 模型有 One/Belongs To a Driver 模型,这样的东西可能会起作用实例.
public function getNameAttribute()
{
return $this->driver->name;
}
然后 Fleet Owner 模型将具有 Sluggable 可以使用的名称属性:
protected $sluggable = [
'build_from' => 'name',
'save_to' => 'slug',
];
您必须确保您的舰队所有者上有一个 slug 列 table 才能正常工作。
我能够根据下面 Josh 的建议解决问题。在模型中我创建了一个方法
public function getNameAttribute()
{
return $this->driver->name;
}
然后在 sluggable 中只需在 build_to 中使用 'name' 即可。