我正在从我的布道表中检索最新的4行,并将其传递给view视图。但我不知道怎么才能拿到每一个布道上的标签
namespace App\Http\ViewComposers;
use App\Sermon;
use App\Tags;
use Illuminate\View\View;
class SermonComposer
{
public function compose(View $view)
{
$sermons = Sermon::take(4)->orderBy('id','DESC')->get();
$view->with('sermons', $sermons );
}}
如何访问与单个布道相关的标签的名称?布道可能有多个标签。
这就是我的布道模型
public function tag()
{
return $this->belongsToMany('App\Tag');
}这是我的刀刃
@foreach ($sermons as $sermon )
<tr>
<td>{{$sermon->id}}</td>
<td>{{$sermon->title}}</td>
<td>{{$sermon->pivot->name}}</td>
<td><img src="{{ asset('img/sermons/'. $sermon->sermon_image)}}" alt=""></td>
<td><a href="#">@include('svg.edit')</a></td>
</tr>
@endforeach如果我{{dd($sermons)}}这就是我得到的,我注意到我的关系数组是空的。

发布于 2018-04-24 07:56:46
它是多到多的关系,所以您应该使用复数名称作为关系,如
public function tags()
{
return $this->belongsToMany('App\Tag');
}定义关系之后,您必须在使用with()查询时加载标记。
public function compose(View $view)
{
$sermons = Sermon::with('tags')->take(4)->orderBy('id','DESC')->get();
$view->with('sermons', $sermons );
}在刀片视图中,你可以这样做
@foreach ($sermons as $sermon )
<tr>
<td>{{$sermon->id}}</td>
<td>{{$sermon->title}}</td>
@foreach ($sermon->tags as $tag )
<td>{{$tag->name}}</td>
@endforeach
<td><img src="{{ asset('img/sermons/'. $sermon->sermon_image)}}" alt=""></td>
<td><a href="#">@include('svg.edit')</a></td>
</tr>
@endforeach这只是我给你的例子,你的问题可能不一样。如果您想要更具体的答案,请显示刀片视图。
如果您有任何疑问,请评论。
https://stackoverflow.com/questions/49995819
复制相似问题