我关联了2个模型-类别和新闻,每个新模型可以为其分配1个类别。问题是我无法访问分配给新类别的类别,我的问题是如何使其工作?以及为什么我的方法行不通。
类别模型-
public function news(){
return $this->hasMany('App\News');
}
新闻模型-
public function category(){
return $this->belongsTo('App\Categroy');
}
CategoryController-
$categories = DB::table('categroys')->get();
dd($categories->news);
消息-
"Property [news] does not exist on this collection instance."
答案 0 :(得分:0)
此行将返回Collection的实例。它本身不是模型。这是类别表中的所有项目。
foreach($categories as $category) {
$news = $category->news();
}
$categories = DB::table('categroys')->first();
但是在这种情况下,您将获得第一个项目,它是一个模型
{{1}}
因此,您应该使用 foreach 或仅获取集合的第一项。
答案 1 :(得分:0)
这是Eloquent Relationships。这种关系仅适用于模型。
$categories = Categroy::all();
foreach($categories as $category) {
// $category->news
}
答案 2 :(得分:0)
您可以eager loading news
方法如下:
$categories = Category::with(['news'])->get();
dd($caregories);