我在项目和剧集之间有关系
项:
public function episodes()
{
return $this->hasMany(episode::class);
}
情节:
public function item()
{
return $this->belongsTo(item::class);
}
在控制器中
$latestanimes = DB::table('episodes')->where('category', 'anime')
->orderBy('created_at', 'desc')
->take(5)
->get();
我想要做的是获得每集的动画片名称
@foreach($latestanimes as $episode)
<tr>
<td>
@foreach($episode->item as $parrent)
{{ $parrent->title; }}
@endforeach
</td>
<td>{{ $episode->number }}</td>
<td>{{ $episode->category }}</td>
</tr>
@endforeach
这给了我“Undefined property:stdClass :: $ item”
我尝试在routes.php中调试
Route::get('/dd/{id}', function($id){
$episode=App\episode::find($id);
echo $episode->name. '<hr>';
$item=$episode->item;
echo $item->title;
});
这有效...... 有没有办法直接访问它?像
{{ $episode->item->title }}
提前
答案 0 :(得分:0)
您的代码中的某些问题是您正在编写的剧集模型属于这意味着剧集只有一个项目会导致foreach循环无法正常工作。
答案 1 :(得分:0)
修正了它。我正在使用DB
直接使用查询构建器,这不是雄辩的。
$latestanimes = episode::with('item') //eager loading, thanks lagbox
->where('category', 'anime')
->orderBy('created_at', 'desc')
->take(5)
->get();
我可以直接访问我想要的第一个地方
{{$episode->item->title}}