2017-08-28 1 views
0

Je rencontre des problèmes lors de l'affichage des données d'un tableau Larivo-Larvaire de type many-to-many. La mise en place de la table de pivotement est:Affichage des valeurs de Laravel Tableau croisé dynamique de plusieurs à plusieurs

characteristic_answers

id - user_id - characteristic_id - characteristic_option_id 
1  130   5      6 
1  130   5      7 
1  130   1      2 

Le characteristic_answer modèle est la suivante:

/** 
* Get the characteristic for the charactersticanswer. 
*/ 
public function characteristic() 
{ 
    return $this->belongsTo(Characteristic::class); 
} 

/** 
* Get the option for the charactersticanswer. 
*/ 
public function characteristicOption() 
{ 
    return $this->belongsTo(CharacteristicOption::class); 
} 

La vue qui me reste à parcourir le nom caractéristique et réponses est:

@foreach($user->characteristicAnswers as $characteristicAnswer) 
     @if(!$characteristicAnswer->characteristic->multiple) 
      <dt>{{$characteristicAnswer->characteristic->name}}</dt> 
      <dd>{{$characteristicAnswer->characteristicOption->name}}</dd> 
     @elseif($characteristicAnswer->characteristic->multiple) 
      <dt>{{$characteristicAnswer->characteristic->name}}</dt> 
      <dd>{{$characteristicAnswer->characteristicOption->name}}</dd> 
     @endif 
@endforeach 

Mais cela affiche les réponses comme:

** Le seul. -> Roi.

Elle a pris un pot de. -> ME, dit le.

Elle en attendait. -> Cependant, elle l'a fait.

Elle en attendait. -> Alice elle-même.

Elle en attendait. -> Alice à nouveau ..

test Kenmerk -> Nee **

Comme vous pouvez le voir, elle attendait un peu. caractéristique est répétée 4 fois car il y a trois réponses. Je veux que le nom de la caractéristique soit affiché une fois et les trois réponses dans un tableau après le nom de la caractéristique. Quelqu'un pourrait-il m'aider avec ça?

Répondre

0

Vous devez utiliser la relation 'belongsToMany'. Reportez-vous à Laravel Many to Many Relation

et le tableau croisé dynamique doit contenir les identifiants des deux tables table1_id et table2_id (nom de la table suivi par underscore et id).

Et pour une valeur unique, l'utilisation de DISTINCT devrait fonctionner.

J'espère que cela fonctionnera pour vous. À votre santé.