Laravel — Недопустимое смещение строки

Я пытаюсь покрасить ячейку таблицы в laravel на основе содержимого ячейки, но получаю эту ошибку:

«Недопустимое смещение строки» Disponible «(Просмотр:
C: \ Users \ RAYLAN \ Documents \ CRMSAV \ Resources \ представления \
pagination_data.blade.php)
(Просмотр: C: \ Users \ RAYLAN \ Documents \ CRMSAV \ re … «

Это мой код:

@foreach($data as $row)
<tr>
<td>{{ $row->ID_Piece }}</td>
<td>{{ $row->Designation }}</td>
<td style="background-color: {{ $row->Status['Disponible'] }}">
{{ $row->Status }}
</td>
</tr>
{{$row->Status = array('Disponible' => '#FF0', 'N' => '#F0F')}}
@endforeach
<tr>
<td colspan="3" align="center">
{!! $data->links() !!}
</td>
</tr>

0

Решение

если твой $row->Status['Disponsible'] присутствует во всех строках, попробуйте ниже

<td style="background-color: {{ $row->Status['Disponible'] }}">
{{ $row->Status['Disponsible'] }}
</td>

РЕДАКТИРОВАТЬ:
попробуйте заменить ваш @foreachпетля

@foreach($data as $row)
{{$row->Status = array('Disponible' => '#FF0', 'N' => '#F0F')}}
<tr>
<td>{{ $row->ID_Piece }}</td>
<td>{{ $row->Designation }}</td>
<td style="background-color: {{ $row->Status['Disponible'] }}">
{{ $row->Status['Disponible'] }}
</td>
</tr>

@endforeach
0

Другие решения

Это говорит о том, что нет Disponible в этой строке:

{{$row->Status = array('Disponible' => '#FF0', 'N' => '#F0F')}}

Возможно, напишите это в строке выше и проверьте, что находится в $row->Status:

<?php
dd( $row->Status );
?>

Но это выглядит немного странно, если честно. Помните, что усы {{ $foobar }} ) повторяют содержание. Но вы присваиваете там значение … Для чего-то, что вы просматриваете? Хм … Я либо невероятно умный, либо невероятно глупый, потому что не понимаю. 🙂

0

Я решил сделать это с Jquery, вот рабочее решение:

@foreach($data as $row)
<tr>
<td>{{ $row->ID_Piece }}</td>
<td>{{ $row->Designation }}</td>
<td id="status">{{ $row->Status }}</td>
</tr>
@endforeach
<tr>
<td colspan="3" align="center">
{!! $data->links() !!}
</td>
</tr>

<script type="text/javascript">

$(document).ready(function(){
$('#status').each(function(){
if ($(this).text() == 'N') {
$(this).css('background-color','#f00');
}
});
});

</script>
0