我遇到了 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/

10-12 04:43