htmlspecialchars () ожидает, что параметр 1 будет строкой, а массив задан в laravel blade - PullRequest
0 голосов
/ 09 апреля 2020

Я выполняю аудит, сравнивая поля old_values ​​и new_values. Все сделанные изменения хранятся в столбцах (old_values ​​и new_values) в формате TEXT. У меня проблема с отображением полей, которые были изменены и соответствуют новым_значениям столбец моей таблицы аудита. Вот так я без проблем перебираю oop через столбец old_values:

<td>
    <table class="table table-bordered table-hover" style="width:100%">
        @foreach($audit->old_values as $attribute => $value)         
          <tr>
             <td><b>{{ $attribute  }}</b></td>                                         
             <td>{{  $value }}</td>                                                                      
          </tr>                                  
         @endforeach
     </table>
</td>

Поэтому я применяю то же самое к столбцу new_values ​​и могу ' t получить доступ к изменениям:

<td>
    <table class="table table-bordered table-hover" style="width:100%">
        @foreach($audit->new_values as $attributee => $value)         
          <tr>
             <td><b>{{ $attributee }}</b></td>                                         
             <td>{{  $value }}</td>                                                                      
          </tr>                                  
         @endforeach
     </table>
</td>

Это ошибка:

htmlspecialchars () ожидает, что параметр 1 будет строкой, а массив получен

Итак, я попробовал следующее: 1) проверить с помощью dd ($ audit-> new_values) Результат:

array:4 [▼
  "category_id" => "2"
  "title" => "Mi cuarto post edit"
  "excerpt" => "Extracto de mi cuarto post edit"
  "body" => "<p>Contenido de mi cuarto post edit</p>"
]

2) Затем выполнить зондирование с помощью array_get Результат:

  <td>{{ array_get($value, 'value.category_id'. default) }} </td>    

new_values

Это моя таблица аудита: я хочу показать данные строки, выделенные красным цветом (новые значения):

tabla audit

Может кто-нибудь помочь мне решить эту проблему? Как правильно перебрать мой массив?

ОБНОВЛЕНО 1

Выполните новый тест, создав новый пост, затем отредактируйте тот же пост, чтобы сравнить поля old_values ​​и new_values. Проверка Я получаю эту ошибку в строке 62

value2

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Исходя из ваших комментариев и правок, кажется, что у вас есть значение в виде массива, поэтому вы можете попытаться напечатать его в виде строки, используя {{ is_array($value2) ? json_encode($value2) : $value2 }}

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

По какой-то причине, чтобы исключить любые проблемы с именами при именовании переменных, я использую другие имена для l oop внутри любых коллекций или выполняю какие-то вещи. Вы тоже пытались l oop с:

<table class="table table-bordered table-hover" style="width:100%">
    @foreach($audit->new_values as $attribute2 => $value2)         
      <tr>
         <td><b>{{ $attribute2 }}</b></td>                                         
         <td>{{ $value2 }}</td>                                                                      
      </tr>                                  
     @endforeach
 </table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...