Код Html charset во встроенном редакторе в datatables / editor - PullRequest
0 голосов
/ 08 ноября 2019

Я использую datatables.net и его редактор плагинов. У меня возникают проблемы при редактировании поля.

в поле редактирования у меня есть L & # 0039; Эльзас вместо L'ALSACE

enter image description here

Вместо чистого uft8 i 'у нас есть кодированный в html символ.

Что я делаю не так?

Laravel - 6.5.0. MySQL db - utf8mb4, сопоставление utf8mb4_unicode_ci;Файл конфигурации базы данных laravel хорошо настроен ('charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci') Редактор версии 1.9.2 Datatables версии 1.10.20 yajra / laravel-datatables-oracle v9.7.1

Контроллер Laravel (ajax get Json Data)

public function getList()
{
    $regie = Regie::select(['id','libelle','web'])
        ->where('typemedia_id', '=', 8)
        ->with('grouperegies');

        return Datatables::make($regie)->toJson();
 }

Клинок Laravel (просмотр) js part

var editor;
  $(document).ready( function () {
    editor = new $.fn.dataTable.Editor( {
    ajax:  '{{ url('regiepqr-list') }}',
    table: '#laravel_datatable',
    idSrc:  'id',
    fields: [
        { label: 'id', name: 'id' }, 
          { label: 'libelle', name:'libelle'},
          { label: 'web', name:'web'}
    ]
} );
$('#laravel_datatable').on( 'click', 'tbody td:not(:first-child)', function (e) {
        editor.inline( this );
    } );
$('#laravel_datatable').DataTable({
      processing: true,
      serverSide: true,
      responsive: true,
      select: true,
      dom: 'Bfrtip',
      buttons: [
        { extend: 'create', editor: editor },
        { extend: 'edit',   editor: editor },
        { extend: 'remove', editor: editor }
    ],
      language: {"url": "https://cdn.datatables.net/plug-ins/1.10.20/i18n/French.json"},
      ajax: "{{ url('regiepqr-list') }}",
      columns: [
          { data: 'id' }, 
          { data: 'libelle'},
          { data: 'web' }
      ]
    });
  });

A dd (Datatables :: make ($ regie) ->toJson ()) в моем контроллере показывает мне, что данные уже в html кодируют char. это нормально?

Большое спасибо Б.

1 Ответ

0 голосов
/ 08 ноября 2019

После дальнейшего изучения проблема, похоже, связана с yajra / laravel-datatables (все остальные классы laravel работают нормально).

Я пытаюсь настроить vendor \ yajra \ laravel-datatables-oracle \ src \ config\ datatables.php

'json' => [ 'header' => ['Content-Type' => 'application/json;charset=utf8'], 'options' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES , ],

или

'header' => ['Content-Type' => 'text/html; charset=UTF-8'],

, но безуспешно (изменение заголовка, но не JSON)

Обходной путь должен использовать -> rawColumns ().

    return Datatables::of($regie)->rawColumns(['libelle'])->make(true);

Это работает, но не очень удобно: мне нужно подумать о каждой колонке ... какие-нибудь другие идеи? Спасибо'S

...