2016-06-26 3 views
0

User, CartProduct 웅변적인 관계에 대해 질문하고 싶습니다. User hasOne CartCart에는 Product이 많이있을 수 있습니다.사용자, 장바구니 및 제품 닮은 관계

users

- id 
- email 
- username 
- password 

carts

- id 
- user_id 
- product_id 
- quantity 

products

:

class User { 

    public function cart() 
    { 
     return $this->hasOne(App\Cart::class); 
    } 
} 



class Cart { 

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

    public function products() 
    { 
     return $this->hasMany(App\Product::class); 
    } 
} 



class Product { 

    // 
} 

나는 데이터베이스 테이블이 같은 구조 한

이 정보가 맞습니까?

답변

0

아니요, 정확하지 않습니다.

users 표는 정확하지만 carts 표는 다음과 같아야합니다 그래서 (카트 여러 제품을 가질 수 있습니다) 많은 관계로 하나이기 때문에 carts 테이블 당신은 product_id 열이 안 :

  • ID
  • USER_ID
  • 양이

그러나 더 찾고 것은 아마 당신이 완하지 않습니다 아마도 제품은 모든 사용자에게 공통적 인 것이기 때문에 장바구니와 제품 간의 일대일 관계가 많기 때문에 다 대 다 관계가 필요합니다.

그래서 당신은 하나 개의 별도의 테이블 (피벗 테이블)를 정의한다 :

cart_product

- cart_id 
- product_id 

을 당신은 products 관계 Cart의 모델과 같이 변경해야합니다 :

public function products() 
{ 
    return $this->belongsToMany(\App\Product::class); 
} 

당신은 분명히해야 필요에 따라 Product 모델에 대해 동일한 역방향 관계를 만듭니다.

+0

고마워요 @ Marinc –

+0

@TakeOver 문제가되지 않는다면 도움이된다면 제 대답을 허용으로 표시해야합니다 –

관련 문제