2017-11-22 20 views
0

나는 다 대다 관계와 다 언어로 구성된 라 라벨 프로젝트를 운영하고 있습니다. 다중 언어 용으로 Laravel-Translatable 패키지를 사용했습니다.
이 프로그램은 많은 수의 파일을 특성과 함께 저장합니다.
각 속성은 여러 파일간에 공유됩니다. 그러나 각 속성은 각 파일마다 다른 값을가집니다.
테이블과의 관계는이 사진과 같다 : tables diagram

내가 어떤 테이블에 attribute_value을 넣어한다? 감사합니다.많은 관계가 많은 laravel 프로젝트에서 데이터베이스의 테이블에 "속성 값"을 넣어야합니까?

+0

다음 표는 다른 – madalinivascu

+0

@madalinivascu 당신을 감사 속성 테이블에 넣어 attibute_trans에 추가 : 특성 모델 내에서 같은 것을해야한다. 나는 속성의 가치를 번역 할 필요가있다. table에 attribute_value를 넣어야합니까? – nekooee

+0

@madalinivascu 이러한 이유로 각 속성은 각 파일마다 다른 값을 가지므로 속성 값 자체는 사용할 수 없습니다. – nekooee

답변

0

attrib_file 테이블에 attribute_value을 추가하십시오. 왜냐하면 각각의 파일에 연결하기 위해 attribute_value이 달라야하기 때문입니다. 한편, 각 파일은 속성 값의 수를 저장합니다. 그래서 attrib_file 피벗 테이블이 가장 적합합니다. 피벗 테이블이 documentation에 주어진 정보를 검색하는 방법 :

$attr = App\Attribute::find(1); 
foreach($attr->files as $file) { 
    echo $file->pivot->attribute_value; 
} 

당신의 관계 방식에 복귀 $this->belongsToMany('App\Models\File')->withPivot('attribute_value') 끝을 추가해야합니다. 당신이 값을 변환해야하는 경우

.. 
public function files() { 
    return $this->belongsToMany('App\Models\File')->withPivot('attribute_value'); 
} 
+0

감사합니다. 피봇 테이블 (attrib_file)에 넣으려고합니까? 예인 경우 피벗에서 attribute_value를 읽는 방법은 무엇입니까? 어떤 코드? – nekooee

+0

나는 내 대답에 그것을 추가했습니다. 확인해주세요. –

+0

감사합니다. 하지만'var_dump ($ file-> pivot);을 사용하면'{ "attribute_id": 1, "file_id": 1}'만 얻습니다. 하지만 테이블에있는'attribute_value'가 필요하지만 보여주지는 않습니다 !! – nekooee