2017-05-15 4 views
-1

두 개의 테이블이 있습니다. 1.products 2.product_images.Laravel 5.4 웅변적인 일대 다 관계 데이터 가져 오기

제품 테이블의 필드 : 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의 모든 데이터를 얻을 싶어요.

그래서 나는 다음이 코드가 있습니다

앱 \ 제품을 :: 찾을 수 있습니다 (1) -> productImage

결과 설정은 다음과 같습니다

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을 받고 있지 않다. 해결책은 무엇입니까? 감사합니다. .

답변

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()을 제안합니다.