laravel - 无法调用多态关系模型
问题描述
我正在尝试以多态关系达到(例如)visitable_id: 38 visitable_type: App\Thread。我可以使用下面的代码对用户执行此操作,但似乎无法使用线程执行此操作:
刀:
@foreach ($visits as $visit)
@if($visit->visitable_type == 'App\User')
Viewing member profile <a href="/profiles/{{ $visit->user->name }}">{{ $visit->user->name }}</a>
@endif
@if($visit->visitable_type == 'App\Thread')
Viewing thread <a href="/forums/{{ $visit->channel->slug }}/{{ $visit->slug }}/">
{{ $visit->title }}</a>
@endif
@endforeach
控制器:
$visits = Visit::where('user_id', $user->id)->get();
型号: 用户:
public function visits()
{
return $this->morphMany(Visit::class, 'visitable');
}
public function visit()
{
return $this->morphOne(Visit::class, 'visitable');
}
型号: 访问:
public function user()
{
return $this->belongsTo(User::class);
}
public function thread()
{
return $this->belongsTo(Thread::class);
}
public function visitable()
{
return $this->morphTo();
}
型号: 螺纹:
public function visits()
{
return $this->morphMany(Visit::class, 'visitable');
}
public function visit()
{
return $this->morphOne(Visit::class, 'visitable');
}
是的,我真的不明白这里的问题是什么,因为当它是用户时我可以获得visitable_id 和visitable_type,但当它是线程时却不能。谁能帮帮我吗?
谢谢!!
解决方案
我必须在线程的情况下调用关系(所以 $visit->visitable->channel->slug)
推荐阅读
- javascript - 将值从后端 nodejs 传递到前端反应原生
- c++ - 如何在模板元编程中创建动态列表?
- visual-studio - 无法退出 VS 侧边栏搜索
- python - 当一个按钮被按下去一个网站链接。如何?
- .net - Xamarin.Forms 如何存储图像 - 最佳实践
- c - recv() 的字节数大于缓冲区中存储的数据量?
- flutter - 当其他下拉值在颤动中发生变化时,将下拉值重置为偏移量0
- javascript - 从 Node.js 中的 API 获取数据并发送到 Reactjs
- html - vuetify - 如何在 v-col 中居中元素
- python - Scrpay - ModuleNotFoundError:没有名为“http.client”的模块