2017-05-15 23 views
-1

私は2つのテーブルを持っています。 1.products 2.product_images。Laravel 5.4雄弁な1対多の関係データのフェッチ

Productsテーブルのフィールド:ID、PRODUCT_NAME、のcreated_at、

product_imagesテーブルのフィールドupdated_atの:

製品テーブルupdated_atのID、PRODUCT_ID、product_image、のcreated_atは、product_imagesテーブルとOnetoMany関係を有します。

だから私は定義されている製品のモデルに:

public function productImage() 
{ 
    return $this->hasMany(Product_image::class,'product_id'); 
} 

今私は両方のテーブルから製品ID 1のすべてのデータを取得したいです。

は、だから私は、以下のこのコードを持っている: - :

Illuminate\Database\Eloquent\Collection {#689 
    all: [ 
     App\Product_image {#679 
     id: 1, 
     product_id: 1, 
     product_image: "1494787942_download (1).jpg", 
     created_at: "2017-05-14 18:52:22", 
     updated_at: "2017-05-14 18:52:22", 
     }, 
    ], 
    } 

しかし、私はPRODUCT_NAMEを取得していない午前

のApp \製品を::(1)探す> productImage

結果セットがあります。解決策は何ですか?おかげさまで

答えて

0

productImageは、product_nameプロパティを持たず、productです。 App\Product::find(1)->productImage;の結果を表示すると、それはproduct_nameプロパティを表示することは期待できません。属性としてproductImageを(product_name属性を含む)あなたのproductを示すだろうdd($product)をやって、その後

$product = \App\Product::with(["productImage"])->find(1); 

と:

あなたはproductを見たいと思った場合、あなたがこれを行うと、画像を添付していますproductImageレコードのCollectionを返します。

複数のproductImageレコードを返すproductImageという名前の関数が誤解を招くことがあることに注意してください。命名規則はproductImages()を示唆しています。