2017-04-14 6 views
1

세 가지 관련 모델이 있습니다. 1. 사용자 모델Eager Loading이 작동하지 않습니다. laravel 5.3

public function users_wishlst(){ 
     return $this->hasMany('App\Users_wishlst'); 
    } 

2. 제품 모델

public function users_wishlst(){ 
     return $this->belongsTo('App\Users_wishlst'); 
    } 

3.Users_wishlst users_wishlsts 테이블에서 모델

public function user(){ 
     return $this->belongsTo('App\User'); 
    } 

    public function product(){ 
     return $this->hasMany('App\Product'); 
    } 

나는 followibg의 열이

  1. ID
  2. ,
  3. 내가이 사용자의 위시리스트의 제품 정보를 얻고 싶은

을 PRODUCT_ID USER_ID. 나는이

public function showWishList(){ 
     $id= Auth::id(); 
     $WishList = wishlist::with('product')->where(['user_id'=>$id])->get(); 
     return json_encode($WishList); 
    } 

시도하지만이 나에게 다음과 같은 오류

SQLSTATE [42S22] 제공 : 발견되지 칼럼 : 이 '절'(SQL에서 'products.users_wishlst_id'1054 알 수없는 열 : 당신에 대해 모든 것을 모른 채 products. users_wishlst_id에서 (1, 2, 3)) 문제

답변

0

무엇 products SELECT * FROM r 데이터베이스 구조 이것은 외래 키에 문제가있는 것처럼 보입니다. Eloquent는 자동으로 키를 추측합니다. 이 오류를 기반으로 제품 테이블에 users_wishlst_id 열 (어쩌면 다른 이름을 지정 했습니까?)이 포함되어 있지 않은 것처럼 보입니다. 데이터베이스를보고 Laravel에 올바른 foreign_key를 제공하십시오.

https://laravel.com/docs/5.3/eloquent-relationships#one-to-many

+0

예. 맞습니다. 제품 테이블에 users_wishlst_id 열이 없습니다. 내 관계가 올바르지 않을 수도 있습니다. 사용자를위한 위시리스트를 만들고 싶습니다. 이를 위해 사용자 ID와 제품 ID를 저장하는 users_wishlists 테이블을 만들었습니다. 당신은 저의 관계를 어떻게 도와 주실 수 있습니까? 아니면 능숙한 표현을 사용하여 그것을 할 수 있습니까? –

+0

이 경우 users-wishlists 테이블이 사용자와 제품 사이의 피벗 테이블이 될 수있는 다 대다 관계와 같습니다. https://laravel.com/docs/5.3/eloquent-relationships#many-to-many. – ExCluSiv3