Laravel-datatables: laravel de tabelas de dados retornou um elemento html como um texto

Criado em 31 jul. 2017  ·  33Comentários  ·  Fonte: yajra/laravel-datatables

As tabelas de dados laravel retornam um HTML como um texto Eu usei rawColumns e escapeColumns, mas não está funcionando

Por favor, que solução e obrigado

Por favor, encontre as fotos abaixo
dara
dara2

Fragmento de código do problema

Detalhes do sistema

  • Sistema operacional
  • Versão PHP
  • Laravel Versão 5.3
  • Laravel-Datatables Versão 7.9
bug

Comentários muito úteis

tente -> escapeColumns ('') em vez disso, mas um array vazio deve funcionar também, eu não entendo.

Todos 33 comentários

Olá,

é normal, escapeColumn é para colunas de escape, portanto, é escapado.

Mas, o que devo fazer, para retornar o elemento HTML?
Obrigado pela sua resposta

você pode usar rawColumns(['link'])

Eu usei, apareceu esse mesmo problema

tente usar a versão 7.9.5, está funcionando para mim, talvez seja um bug recente.

editar:
Acho que encontrei o bug, há uma array_diif_key dentro de escapeColumns no DataProcessor
tente ['link' => true] ou algo parecido.

Eu usei a última versão do laravel de datatables,
Eu tentei também ['link' => true] mas não funcionou,
Devo atualizar a versão do laravel para 5.4?

Eu não acho que isso vai resolver o seu problema

O que devo fazer na sua opinião?

você tentou escapeColumns (['link' => true) ou rawColumns (['link' => true])?

Sim, ele é.

quero dizer qual você testou?
você também pode tentar escaparColumns ([]).

Eu testei os dois

escapeColumns ([]) deve desativar o escape em todas as colunas como uma solução alternativa

Eu tentei todas as soluções, mas nada mudou

e escapeColumns (null)?

Mesmo problema,
Eu tenho uma pergunta, por que a coluna de ação retorna HTML, mas o link não?

deve funcionar, eu não entendo.
você removeu todas as chamadas escapeColumns?

Como posso remover todas as chamadas escapeColumns? e porque?

dentro do seu código, quero dizer,
porque se você está fazendo rawColumns
e em seguida faça o oposto com escapeColumns em algum outro lugar do seu código.

Meu código agora é
return Datatables :: of ($ row)
-> addColumn ('link', ' Coluna Html
-> addColumn ('ação', ' Coluna Html
-> escapeColumns (null)
-> make (true);

tente -> escapeColumns ('') em vez disso, mas um array vazio deve funcionar também, eu não entendo.

Mesmo problema, também não entendo porque a ação provavelmente funciona, mas o link não

a ação funciona porque não é escapada por padrão

Obrigado pelo seu esforço,

Existe alguma maneira de encontrar uma solução?

Lançou um patch v7.9.8. Você pode verificar se isso corrige o problema? Obrigado e desculpe pelo inconveniente.

Como posso atualizar para a última versão?

eu acho que você deveria tentar:

[
    'link' => 'link'
];

a versão mais recente não corrige esse problema para mim.

se eu fizer :

->escapeColumns(['action' => 'action'])
->rawColumns(['action'])

a coluna de ação tem escape, e se eu fizer:

->escapeColumns(['action' => 'action'])
->rawColumns(['action => 'action'])

a coluna não tem mais escape.

Como posso atualizar minha versão para 7.9.8

você pode alterar seu composer.json e definir yajra / laravel-datatables para 7.9.8
e então o composer atualiza yajra / laravel-datatables

ou você pode fazer composer require yajra / laravel-datatables 7.9.8 diretamente, ele mudará seu composer.json e atualizará o pacote

Ok vou tentar
Obrigada

Finalmente, funciona,
Obrigado Yajre e IK77
usei escapeColumn ['link'] na última versão e provavelmente está funcionando

para versões acima de 8, você deve ir para o arquivo config / datatables.php .... e adicionar o nome da coluna em .... raw => ['name_of your_column']

Esta página foi útil?
0 / 5 - 0 avaliações