retornar HTML em $ event-> sender-> addErrors não funciona

Oct 09 2020

Eu tenho um plugin que está verificando se há uma entrada duplicada antes de salvar. Estou tentando devolver ao usuário uma âncora para a entrada que existe para que meu cliente possa alternar sem procurá-la em uma estrutura gigante.

Eu tenho esse código

$event->sender->addErrors([ 'expiryDate' => '<a href='.$entry[0]->cpEditUrl.'>'.$entry[0]->title.'</a>'
]);

Mas, de alguma forma, não consigo processar o HTML corretamente no Painel de controle, ele está sendo exibido como texto simples. Existe alguma maneira de conseguir isso?

Respostas

1 Kevon Oct 09 2020 at 19:08

Certo, depois de cavar e depurar um pouco mais sobre esse problema, descobri sozinho!

$event->sender->addErrors([ 'expiryDate' => Template::raw('<a href='.$entry[0]->cpEditUrl.'>'.$entry[0]->title.'</a>')
]);

PS: não se esqueça de adicionar isso ao topo do seu arquivo php:

use craft\helpers\Template;