Перебирайте колонки по лезвию laravel - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу l oop через значения всех столбцов и распечатать его в таблице. Но не могу этого сделать. Ниже моего контроллера:

$resultpersonel = DB::table('puantajs')
    ->leftJoin('personnels', 'puantajs.pPersonel', '=', 'personnels.id')
    ->select('personnels.sAd','personnels.sSoyad','personnels.sGorev','puantajs.*')
    ->where('puantajs.nYear', $yearresult)
    ->where('puantajs.nMonth', $monthresult)
    ->where('puantajs.pPersonel', $personel)
    ->get();

Ниже моего блейд-кода: сначала я получаю, сколько строк. во-вторых, я перебираю каждый столбец и печатаю значение Это один из базовых и стандартных кодовых блоков. Но laravel все усложняет.

@foreach($resultpersonel as  $data)

            @for ($i = 0; $i <'30'; $i++)                                               
            <td id="r">{{$data[$i]}}</td>                                                                                         
            @endfor            
            </tr>
   @endforeach

Выдает ошибку:

Невозможно использовать объект типа stdClass в качестве массива

1 Ответ

0 голосов
/ 01 апреля 2020

Вы не можете получить доступ к элементам объекта по номеру c индекса. Вы должны привести модель к массиву и использовать foreach:

<table class="table table-bordered">
    @foreach ($resultpersonel as $data)
        <tr>
            @foreach ($data->toArray() as $column => $value)
                <td>{{ $column }}</td>
                <td>{{ $value }}</td>
            @endforeach
        </tr>
    @endforeach
</table>
...