/ / V prípade projektu laravel s mnohými až mnohými vzťahmi by som mal do ktorej tabuľky databázy vložiť „hodnotu atribútu“? - php, laravel, many-to-many, vzťah, vzťah

V laravelskom projekte s mnohými až mnohými vzťahmi by som mal dať "hodnotu atribútu", v ktorej tabuľke databázy? - php, laravel, mnoho-to-mnoho, vzťah, vzťah

Mám projekt štrku s mnohými až mnohými vzťahmi a mnohými jazykmi. použil som Laravel-preložiteľné balíček pre viac jazykov.
Tento program ukladá veľké množstvo súborov s ich atribútmi.
Každý atribút je zdieľaný medzi niekoľkými súbormi. Každý atribút má však v každom súbore inú hodnotu.
Tabuľka a ich vzťah je ako táto fotografia: tabuľkový diagram

mal by som dať attribute_value v ktorej tabuľke? Ďakujem

odpovede:

0 pre odpoveď č. 1

pridať attribute_value na attrib_file stôl. Pretože pre každé spojenie so súborom attribute_value by mali byť odlišné. Na druhej strane každý súbor ukladá počet hodnôt atribútov. Preto attrib_file otočný stôl sa hodí najlepšie. Ako získať informácie z kontingenčnej tabuľky je uvedený v dokumentácia:

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

Uistite sa, že ste ho pridali ->withPivot("attribute_value") koniec návratu $this->belongsToMany("AppModelsFile") vo vašej metóde vzťahu. Malo by to byť niečo také v rámci atribút Model:

..
public function files() {
return $this->belongsToMany("AppModelsFile")->withPivot("attribute_value");
}