Diacritice Blade

Salut, stie cineva cum sa fac sa mearga diacriticile si in fisierul .blade? Export un blade in format PDF, totul e ok. Mai putin diacriticile, pe platforma diacriticile merg super bine, sunt afisate bine.
In fisierul .pdf diacriticile se inlocuiesc cu “?” si nu stiu cum as rezolv asta.
Am tot incercat diverse de pe internet, cu META tag UTF-8 in .blade dar degeaba.

Nu cred ca are treaba partea de templating ci mai repede cu fontul folosit in documentul PDF care trebuie sa stie seturi de caractere mai variate. Incearca cu alt tip de font sau un font standard.

1 Like

Daca folosesti dompdf.

2 Likes

Perfect, mai am un necaz… Tot in blade pentru PDF primesc eroarea “Call to undefined function datesDifference()”. Este o functie de a calcula timpul, am pus-o in cu si ce este necesar, ca in alte fisiere unde functioneaza, dar aici nu vrea, primesc eroare.
Asa este apelata: {!! datesDifference($a->start_date, $a->end_date) !!}

Faptul ca iti da acea eroare inseamna, indubitabil, ca nu este gasita in momentul in care se incearca apelarea ei. Ca ai pus-o unde trebuie, probabil, e doar o presupunere de a ta.

Fa diferite teste, in diferite contexte (adica debugging) si iti vei da seama de problema.
Cum ai putea face asta? Iei un exemplu similar, care functioneaza, si incerci sa-l aduci treptat, pana in punctul in care devine identitc cu cazul tau, nefunctional. Cand zic treptat ma refer ca trecerea sa fie in pasi marunti, iar fiecare pas sa fie testat. Daca urmezi acest parcurs, e imposibil sa nu te intalnesti pe drum cu bug-ul (altfel ar rezulta ca ai ajuns cu 2 exemple functionale). Si vei sti exact la ce pas s-a produs ruptura.
In cazul tau ar presupune sa schimbi locul unde este definita functia, sa schimbi numele functiei, sa schimbi locul unde ea este apelata…

N-am reusit, am tot incercat. Ceva nu e bine in PDF-ul asta de nu merge functia.

PDF-ul nu are treaba. Tu poti rula si testa template-ul direct in browser, fara a implica PDF-ul. Ar trebui sa-ti dea exact aceleasi erori.

Poate ar fi mai simplu sa pre-calculezi in controller datesDifference-ul respectiv si doar sa afisezi datele in template.

1 Like

Ai vreo idee cum as putea sa fac asta…? DatesDifference este script JS, il pot pune in Controller PHP?
Multumesc.

Nu, reproduci in PHP ce face functia respectiva.

Asa cum ai cele doua field-uri
$a->start_date
$a->end_date
poti calcula in PHP folosind functiile de manipulare date/time
$a->_date_diff

Deci tu incerci sa executi din PHP o functie definita in JS? O sa te surpind, dar e normal sa nu-ti functioneaze. Ori muti functia in PHP, ori o apelezi din contextul JS.

<script>
function datesDifference(a, b) {
//
}
</script>
<span id="date_diff"></span>
<script>
$("#date_diff").innerText = datesDifference( "{{ $a->start_date }}", "{{ $a->end_date }}" );
</script>

Care va ajunge randat catre browser in forma asta:

<span id="date_diff"></span>
<script>
$("#date_diff").innerText = datesDifference( "value_start_date", "value_end_date" );
</script>
$options->set('isJavascriptEnabled', TRUE);
1 Like

Este activat… degeaba, nu merge… :rage: