我正在遇到一个障碍,所以寻求你的专家意见。
我们有一个司机桌,汽车桌,车队老板桌 - 司机有车 - 车队老板有车的司机 我试图创建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,具体如下。
在驱动程序模型中,我创建了一个可缓慢的方法,如下所示
protected $sluggable = [
'build_from' => 'user.name',
'save_to' => 'slug',
];
对于驱动程序,它使用user.name并保存相应的slug,它可以按预期运行驱动程序和卡。
但是对于车队所有者,我无法做到这一点,因为对于车队所有者来说,驾驶员的名字存储为驾驶员名称,但我无法引用此名称或为此创建slu ..
答案 0 :(得分:1)
我没有使用Eloquent Sluggable并且不确定我是否理解您的数据库架构,但是假设Fleet Owner模型具有One / Belongs To Driver模型实例,可能这样的事情可能有效。
public function getNameAttribute()
{
return $this->driver->name;
}
然后Fleet Owner模型将具有Sluggable可以使用的名称属性:
protected $sluggable = [
'build_from' => 'name',
'save_to' => 'slug',
];
您必须确保车队所有者表上有一个slug列才能使其正常工作。
答案 1 :(得分:1)
我能够通过以下Josh的建议解决问题。在模型中我创建了一个方法
public function getNameAttribute()
{
return $this->driver->name;
}
然后在缓慢使用' name'在build_to中,它的工作原理。