Laravel 5 - Slug实施

时间:2016-05-17 06:06:30

标签: php eloquent laravel-5.1 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,具体如下。

在驱动程序模型中,我创建了一个可缓慢的方法,如下所示

protected $sluggable = [
        'build_from' => 'user.name',
        'save_to'    => 'slug',
    ];

对于驱动程序,它使用user.name并保存相应的slug,它可以按预期运行驱动程序和卡。

但是对于车队所有者,我无法做到这一点,因为对于车队所有者来说,驾驶员的名字存储为驾驶员名称,但我无法引用此名称或为此创建slu ..

2 个答案:

答案 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中,它的工作原理。