Таким образом, я в основном пытаюсь найти значения выбранных результатов (могут отличаться), а затем сравнить их, чтобы найти максимальное конкретное значение столбца в зависимости от того, сколько результатов выбрано.
Вот как я собираю свои результаты:
public function index($id = null, $name = null, $id2 = null, $name2 = null, $id3 = null, $name3 = null)
{
$users = [];
$jsonStats = [];
if (isset($id)) {
$users[] = Users::query()->findOrFail($id);
if (isset($id2)) {
$users[] = Users::query()->findOrFail($id2);
if (isset($id3)) {
$users[] = Users::query()->findOrFail($id3);
}
}
}
foreach ($users as $user) {
$jsonStats[] = $user->stats->asArray();
}
return view('frontend.index', [
'users' => $users,
'stats_json' => $jsonStats
]);
}
Итак, как вы можете видеть, я наконец-то получил результат Eloquent в массиве users[]
, хотя затем мне нужно найти самое высокое значение из отношения, названного stats
Я попытался сделать следующее, но безрезультатно:
{{ max(array_column($users->stats, 'stat1')) }}
Что выдает следующее:
Попытка получить свойство 'stats' необъекта
РЕДАКТИРОВАТЬ Моя $user->stats->asArray();
функция возвращает следующее:
public function asArray()
{
return [
'stat1' => [
[
'id' => 'attribute1',
'name' => 'Attribute1',
'type' => 'main',
'value' => $this->attr1Value
],
[
'id' => 'attribute2',
'name' => 'Attribute2',
'type' => 'main',
'value' => $this->attr2Value
],
[
'id' => 'attribute3',
'name' => 'Attribute3',
'type' => 'main',
'value' => $this->attr3Value
]
]
];
}
При попытке найти максимальное значение из этого массива я пробовал следующее:
{{ max(array_column($stats_json['stat1'][0], 'value')) }}