2017-08-28 76 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 - >倪**

正如你可以看到她等着一些。特徵重複4次,因爲有三個答案。我希望特徵名稱在特徵名稱後面顯示一次,三個答案在一個數組中顯示。有人可以幫助我嗎?

回答

0

您應該使用'belongsToMany'關係。參考Laravel Many to Many Relation

數據透視表應包含兩個表table1_id和table2_id(表名,後跟下劃線和id)的ID。

而對於獨特的價值使用DISTINCT應該工作。

我希望這會對你有用。乾杯。

相關問題