我在显示来自多对多Laravel Pivot表的数据时遇到问题。数据透视表的设置为:
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
但是这会显示如下答案:
**唯一的。 - &GT;特大
她拿下一个罐子。 - &GT; ME,&#39;说了。她等了一些。 - &gt;然而,她这样做了。
她等了一些。 - &gt;爱丽丝自己。
她等了一些。 - &gt;再次爱丽丝..
测试kenmerk - &GT;倪**
你可以看到她等了一些。特征重复4次,因为有三个答案。我想要在特征名称后面显示一次特征名称和三个答案。有人可以帮我吗?
答案 0 :(得分:0)
您应该使用'belongsToMany'关系。请参阅Laravel Many to Many Relation
并且数据透视表应该包含两个表table1_id和table2_id的ids(表名后跟下划线和id)。
对于DISTINCT的独特价值使用应该有用。
我希望这对你有用。欢呼声。