laravel 自定义多态关联的类型字段 string 转 int 的问题?
自定义多态关联的类型字段
写映射
[
1=>'App\Post',
2=>'App\Commit',
]
但是我有多个表是多对多关系呢?
需要另一套映射
[
1=>'App\Other',
2=>'App\User',
]
多态关联的表类型都用的int
,但是1
在不同的model
中映射的不同的表,这样该怎么做呢?
public function click()
{
if ($this->type == 1) {
return $this->belongsTo('App\Models\HomeList', 'click_id');
}
if ($this->type == 2) {
return $this->belongsTo('App\Models\SlideShow', 'click_id');
}
if ($this->type == 3) {
return $this->belongsTo('App\Models\ReleaseTask', 'click_id');
}
return $this->belongsTo('App\Models\HomeList', 'click_id');
}
上面的代码结果 $this->type
这个值解析不出来,一个if
都没进!!!
我该怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你是怎么调用这个click方法的,打印$this->type是没有值的吗?
遇到了同样的问题,不知道题主当时是怎么解决的,我这边给解决掉了,原理就是利用
获取器
。下面贴一下代码。
晚些时候通过发布一篇文章来详细描述。
更加顺手的用好 Laravel 的多态关联 - 开发中的一些奇技淫巧 - SegmentFault 思否