У меня есть таблица, подобная приведенной ниже, и я использовал eloquent для получения всех данных, основанных на ключе, на моем контроллере
моя таблица содержит дублирование в столбце Error, также столбец Factor
Error Factor Attribute PK_ID
X1 YY Att1 1
X1 YY Att2 2
X1 YY Att3 3
X2 ZZ Att4 4
X4 ZZ Att5 5
в моемКонтроллер, который я использовал ниже, код пытался получить уникальное значение
$Error = table::where('id', '=', $id)
->orderBy('ErrorCol')
->orderBy('FactorCol')
->get();
$errorForView = [];
$first = true;
$errorKey = $factorKey = 0;
foreach($Error as $row) {
$currentError = $row->ErrorCol;
$currentFactor = $row->FactorCol;
if($first) {
$prevError = $currentError;
$prevFactor = $currentFactor;
$first = false;
}
if($currentError !== $prevError) {
$errorKey++;
}
if($currentFactor !== $prevFactor) {
$factorKey++;
}
$errorForView[$errorKey]['error'] = $currentError;
$errorForView[$errorKey]['factors'][$factorKey]['factor'] = $currentFactor;
$errorForView[$errorKey]['factors'][$factorKey]['attributes'][] = $row-
>AttributeCol;
$prevError = $currentError;
$prevFactor = $currentFactor;
}
return view('view')->with('errorForView',$errorForView);
Мне нужно повторить приведенный ниже блок кода
<h6>unique Error</h6>
<h5>unique Factor</h5>
<ul>
<li>each value of attribute based on factor column</li>
<li>each value of attribute based on factor column</li>
<li>each value of attribute based on factor column</li>
</ul>
, поэтому я попытался использовать для каждого из них следующую логику
@foreach($errorForView as $error)
<h5>{{$error['error']}}</h5>
@foreach($error['factors'] as $factor)
<h6>{{$factor['factor']}}</h6>
<ul>
@foreach($factor['attributes'] as $attr)
<li>{{$attr}}</li>
@endforeach
</ul>
@endforeach
@endforeach
но я обнаружил, что приведенный ниже результат X1 Имя ошибки дублировано, поэтому как получить Ошибка с каждым связанным фактором и атрибутами, даже если имя ошибки дублируется
<h6>X1</h6>
<h6>X1</h6>
<h6>X1</h6>
<h5>YYY</h5>
<h5>YYY</h5>
<h5>YYY</h5>
<ul>
<li>Att1</li>
<li>Att2</li>
<li>Att3</li>
</ul>
<h6>X2</h6>
<h5>ZZ</h5>
<ul>
<li>Att4</li>
</ul>
<h6>X4</h6>
<h5>ZZ</h5>
<ul>
<li>Att5</li>
</ul>