簡體   English   中英

如何使Laravel多對一(hasMany)關系有效

[英]How to make laravel Many-To-One (hasMany) relationship works

我關聯了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); $categories = DB::table('categroys')->get(); dd($categories->news);

信息 -

"Property [news] does not exist on this collection instance."
  1. 該行將返回Collection的實例。 它本身不是模型。 這是類別表中的所有項目。 $categories = DB::table('categroys')->get();

     foreach($categories as $category) { $news = $category->news(); } 
  2. 但在這種情況下,您將獲得第一個項目,它是一個模型

      $categories = DB::table('categroys')->first(); 

因此,您應該使用foreach或僅獲取集合的第一項。

這是雄辯的關系 此關系僅適用於模型。

$categories = Categroy::all();

foreach($categories as $category) {
    // $category->news
}

您可以按以下方式加載 news方法:

$categories = Category::with(['news'])->get();
dd($caregories);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM