首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5-段塞式执行

Laravel 5-段塞式执行
EN

Stack Overflow用户
提问于 2016-05-17 06:06:29
回答 2查看 477关注 0票数 3

我用鼻涕虫碰到一个路障,所以寻求你的专家建议。

我们有司机桌,汽车桌,车队主人桌。

  • 司机有车
  • 车队的主人有司机谁有汽车,我正试图创造的子弹如下:
代码语言:javascript
复制
www.example.com/drivers/driver-name  
www.example.com/cars/car-name  
www.example.com/fleet-owners/fleet-owner-name

在我的webapp中,我使用雄辩实现了弹格,如下所示。

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

代码语言:javascript
复制
protected $sluggable = [
        'build_from' => 'user.name',
        'save_to'    => 'slug',
    ];

对于驱动程序,它使用user.name并保存相应的段塞,并且对驱动程序和卡片都按预期的方式工作。

但是对于车队所有者来说,我不能这样做,因为对于车队所有人来说,司机的名字被存储为司机名,但是我不能引用这个名字,也不能为此创建段塞。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-17 14:43:49

我还没有使用雄辩的Sluggable,也不确定我是否理解您的数据库模式,但假设舰队所有者模型有一个/属于一个驱动程序模型实例,类似的东西可能会起作用。

代码语言:javascript
复制
public function getNameAttribute()
{
    return $this->driver->name;
}

然后,舰队所有者模型将有一个名称属性,Sluggable可以使用该属性:

代码语言:javascript
复制
protected $sluggable = [
        'build_from' => 'name',
        'save_to'    => 'slug',
    ];

你必须确保在你的舰队所有者的桌子上有一个鼻涕虫列,这样才能工作。

票数 1
EN

Stack Overflow用户

发布于 2016-05-21 05:02:15

我用下面乔希的建议解决了这个问题。在模型中,我创建了一个方法

代码语言:javascript
复制
public function getNameAttribute()
{
    return $this->driver->name;
}

然后在“懒惰”中,只需在build_to中使用“name”就可以了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37268349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档