Я не думаю, что вы ищете отношения. вам просто нужно переставить данные в нужной форме и передать их в ваше представление. Вот пример:
// rearrange data into $result array
$result = [];
foreach($data as $param){
$result[$param->keys][$param->machine->name] = $param->value;
}
// pass the new array into the view
return view('production.parameter.view', [
'machines' => $data->unique('machine.name')->pluck('machine.name'),
'params' => $data->unique('keys')->pluck('keys'),
'data' => $data,
'result' => result
]);
, который создаст этот массив
// $result content
[
'Zone 1' => [
'Machine 1' => 10,
'Machine 2' => 20,
],
'Zone 2' => [
'Machine 2' => 20
]
]
, поэтому, по вашему мнению, вы можете l oop просмотреть его, чтобы заполнить таблицу
@foreach($result as $keys => $values)
<tr>
<td> {{ $keys }} </td>
@foreach($machines as $machineName)
<td> {{$values[$machineName] ?? '-' }} </td>
@endforeach
</tr>
@endforeach