显示Laravel多对多数据透视表中的值

时间:2017-08-28 08:21:44

标签: php laravel eloquent pivot-table

我在显示来自多对多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次,因为有三个答案。我想要在特征名称后面显示一次特征名称和三个答案。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您应该使用'belongsToMany'关系。请参阅Laravel Many to Many Relation

并且数据透视表应该包含两个表table1_id和table2_id的ids(表名后跟下划线和id)。

对于DISTINCT的独特价值使用应该有用。

我希望这对你有用。欢呼声。