Ошибка при отображении свойства коллекции в представлении laravel?
у меня есть следующий запрос в laravel с query builder:
$datos = $request->input("select");
$precio = $request->input("Precio");
$estudios =$request->input('CheckEstudio');
$conte = count($estudios);
foreach ($estudios as $key) {
$sql2[]=DB::table('actividades')
->join('proyectos','actividades.id_actividad','proyectos.id_actividad')
->select('nombre_actividad')
->where('proyectos.id_estudio',$key)->get();
}
переменная $Studies foreach подсчитывает мне выбранные checkbox, которые у меня есть в представлении, которые имеют значение от 1 до 4, поэтому переменная запроса $sql2[] объявлена как массив, так как в зависимости от выбранного checkbox запрос изменяется, и результат сохраняется в массиве.
при выполнении dd ($sql2); это дает мне следующее результат:
array:4 [▼
0 => Collection {#184 ▼
#items: array:11 [▼
0 => {#188 ▼
+"nombre_actividad": "2 MODELADO DEL SISTEMA"
}
1 => {#183 ▼
+"nombre_actividad": "ANÁLISIS FLUJO DE CARGA"
}
2 => {#185 ▼
+"nombre_actividad": "ANÁLISIS DE CORTO CIRCUITO "
}
3 => {#181 ▼
+"nombre_actividad": "ANÁLISIS DE PÉRDIDAS DEL SISTEMA "
}
4 => {#189 ▶}
5 => {#186 ▶}
6 => {#187 ▶}
7 => {#190 ▶}
8 => {#191 ▶}
9 => {#192 ▶}
10 => {#193 ▶}
]
}
1 => Collection {#198 ▶}
2 => Collection {#209 ▶}
3 => Collection {#216 ▶}
]
запрос выполняется правильно и сохраняется таким образом, моя проблема заключается в том, что я отправляю переменную sql2 в представление и пытаюсь получить доступ к свойству имя_активности для отображения этих данных в представлении.
return view('actividades',compact('datos','count','consultaActividades','sql2','precio'));
// dd($sql2) ;
}
}
Так я пытаюсь показать данные:
@foreach($sql2 as $sql)
<tr>
<td>{{ $sql->nombre_actividad }}</td>
{{-- @php
for ($i=0; $i < $count ; $i++) {
echo '<td><input type="text" name"txt[]" value="'.$precio.'"></td>';
}
@endphp --}}
<fieldset id="fieldt"></fieldset>
</tr>
@endforeach
это сообщение об ошибке, которое я получаю:
Что может быть не так?
1 answers
Вы должны перебирать элементы каждой коллекции или, другими словами, выполнять двойную итерацию, принимая во внимание структуру, доставляемую запросом:
@foreach($sql2 as $sql)
@foreach($sql as $actividad)
<tr>
<td>{{ $actividad->nombre_actividad }}</td>
....
@endforeach
@endforeach