Я пытаюсь покрасить ячейку таблицы в 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>
если твой $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
Это говорит о том, что нет Disponible
в этой строке:
{{$row->Status = array('Disponible' => '#FF0', 'N' => '#F0F')}}
Возможно, напишите это в строке выше и проверьте, что находится в $row->Status
:
<?php
dd( $row->Status );
?>
Но это выглядит немного странно, если честно. Помните, что усы {{ $foobar }}
) повторяют содержание. Но вы присваиваете там значение … Для чего-то, что вы просматриваете? Хм … Я либо невероятно умный, либо невероятно глупый, потому что не понимаю. 🙂
Я решил сделать это с 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>