2017-03-09 6 views
0

Laravel 5.x에서 관계가있는 데이터베이스에서 모델을 만드는 방법은 무엇입니까?laravel에서 관계가있는 모델 만들기

내가 모델을 작성하려면이 명령을 사용하고 있지만 데이터베이스 스키마에 관계 보여주고있다 :

장인 :: 전화 ('합니다 모델'을, 배열 ("이름"=> ' 모듈/관리자/모델/캠페인 '));

+0

자신의 관계를 직접 정의해야합니다. – Christophvh

+0

https://laracasts.com/series/laravel-from-scratch-2017/episodes/7 –

+0

대용량 데이터베이스가있을 수 있으므로 주변에 어떤 방법이 있어야한다고 생각합니다. 많은 관계가 있습니다. – subhajit

답변

1

당신은 자신과의 관계를 중상해야합니다. laravel은 그것을 할 수 없습니다. 모든 브랜드가 많은 제품을 가지고 있으며, 매우 제품은 하나의 브랜드를 가지고 있기 때문에

public function relation1() 
{ 
    $this->hasMany('CLASS_NAME', 'FK'); 
} 
0

의 우리가이 경우에 brands.So의 다양한 제품을 포함하는 가게가 있다고 가정하자, 나는 많은 관계로 하나를 생성해야합니다. 따라서 숙련공 명령을 사용하여 모델을 만들어 봅시다.

php artisan make:model Product -m // "-m" creates tables for us. 
    php artisan make:model Brand -m   

그래서 관계를 만들어 보겠습니다. 내가 분명이 statemet의 과소을 만들기 위해 관계

public function brand(){ 

     $this->belongsTo('App\Brand') ; 
    } 

에 대한 브랜드 기능을 만드는 오전 "제품"모델에서

, 다음과 같이 읽을. 올바른 경로에있는 것보다 논리적으로 올바른 경우 "제품 belongsTo, 브랜드". 그것을 사용하는 것이 더 논리적이다, 그래서

같은 논리는 역의 관계지만 이미 사용 있기 때문에 당신이 belongsTo를 사용할 수 없습니다,이 시간 동안 유효 나는 관계

에 대한 브랜드 기능을 만드는 오전 "브랜드"모델에서 "많은있다"
public function products(){ 

     $this->hasmany('App\Product') ; 
    } 

"브랜드에는 많은 제품이 있습니다."

+0

네, 여기서 쓴 것은 쓰기지만, 이제는 더 많은 관계가 포함 된 200 개 이상의 테이블 데이터베이스가 있습니다. 이제 어떻게하면 일대일 관계를 얻을 수 있습니까? 아니면 각 모델에서 하나 또는 여러 가지 일을 할 수 있습니까? Laravel에서 모델에 이러한 관계를 추가 할 수있는 방법이 있습니까? 데이터베이스로부터 클래스를 생성하는 동안 Hibernate (JAVA)와 마찬가지로이 관계를 자동으로 생성한다. – subhajit