Lucrez cu D8 și de obicei nu fac tematică, așa că sunt blocat cu o problemă.
Am o rută personalizată într-un modul personalizat care apelează o metodă checkinConfirmation() pe un controler.
În interiorul acelui controler, am asta:
funcția publică checkinConfirmation() {
$output['items'] = [
'#type' => 'set de câmpuri',
'#title' => t('Articole înregistrate'),
];
$output['items']['name'] = [
'#prefix' => '<h2>',
'#sufix' => '</h2>',
'#markup' => t('Nume'),
];
$output['#theme'] = 'confirmare_circulare';
$ieșire['#output'] = $ieșire;
returnează $ieșire;
}
și în interiorul temei mele, am asta în interiorul hook_theme()
funcția publică mytheme_theme() {
$theme['circulation_confirmation'] = [
'template' => 'pagina/circulare--confirmare',
'variabile' => [
'ieșire' => [],
],
];
}
În șablonul meu, am un {{ ieșire }}
variabilă pentru a imprima rezultatul randat furnizat de la $output. Problema este totuși că nu primesc elementele din șablon și nu-mi dau seama de ce. Șablonul este introdus, deoarece învelișul din fișierul șablon este aplicat pe pagină, iar containerul principal este lățimea care ar trebui să aibă.
Folosind aceasta în schimb (în controler):
întoarcere [
'#theme' => 'confirmare_circulare',
'#output' => $output,
];
Cel puțin primesc datele, dar nu pare să folosească șablonul pe care l-am furnizat, deoarece ambalajul a dispărut și containerul principal are lățime completă în loc de lățimea care ar trebui să fie.
De obicei nu fac tematică sau șabloane, iar când o fac, de obicei, sunt forme, așa că pot să-i transmit „element de randare” => „formular”, pentru a-l face să treacă elementele de formular la temă. Nu sunt sigur ce fac greșit.
Te rog ajuta-ma?