2017-08-28 1 views
0

多対多Laravelピボットテーブルのデータ表示に問題があります。ピボットテーブルのセット・アップは以下のとおりです。Laravel多対多ピボットテーブルの表示値

characteristic_answers

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

モデルcharacteristic_answerです:

/** 
* 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); 
} 

私は特性の名前と回答をループに今持っている図です。

@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 

しかし、これは次のような回答を表示します:

**のみです。 - >キング。

彼女は瓶を取った。 - >私、 'と言いました。

彼女は何人かを待った。 - >しかし、彼女はそうしました。

彼女は何人かを待った。 - >アリス自身。

彼女は何人かを待った。 - >アリス再び..

テストkenmerk - >ねぇ**

あなたは彼女はいくつかのを待って見ることができるように。 3つの答えがあるので、特性は4回繰り返される。私は特性名を一度表示し、3つの回答を特性名の後の配列に入れたい。誰かが私にこれを手伝ってもらえますか?

答えて

0

「belongsToMany」関係を使用する必要があります。 Laravel Many to Many Relation

ピボットテーブルには、2つのテーブルtable1_idとtable2_id(テーブル名のあとにアンダースコアとIDが続く)のIDが含まれている必要があります。

そしてDISTINCTのユニークな値の使用のためには動作するはずです。

私はこれがうまくいくと思います。乾杯。

関連する問題