我正在试着联系一个(例如)多态关系中的visitable_id: 38 visitable_type:应用程序\线程。我可以使用下面的代码对用户执行此操作,但似乎不能对线程执行此操作:
刀片:
@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,但当它是线程时,我就不能了。有谁能帮帮我吗?
谢谢你!!
发布于 2020-12-21 13:02:19
在线程的情况下,我必须调用关系(因此$a>visitable>channel->slug)
https://stackoverflow.com/questions/65387470
复制相似问题