Câteva sfaturi generale:
Nu atribuiți chei numerice precum 1 și 2 rândurilor dvs. - lăsați PHP să genereze cheile. Sau, dacă într-adevăr trebuie să vă setați propriile chei, atunci utilizați chei șir și dați FIECĂRUI rând o cheie.Ceea ce arătați mai sus are primul rând numerotat 1, apoi al doilea, al treilea și al patrulea rând nu au chei (deci PHP le va atribui secvențial 2, 3, 4), apoi dați celui de-al cincilea rând cheia 2 care suprascrie al doilea rând (care avea o cheie generată automat de 2) - astfel ajungi să ai patru rânduri chiar dacă ai vrut cinci. Atribuirea constantă a cheilor de rând de la început va evita astfel de probleme.
La fel, când faci așa ceva:
'col2' => $form['example_select'] = [ ... ]
adăugați un nou element de formular la formular în DOUA locuri - o dată în tabel și o dată în afara tabelului. Dacă aceasta este ceea ce intenționați, atunci declarați mai întâi elementul de formular în afara tabelului și utilizați doar variabila din interiorul tabelului.
Oricum, următoarele vor face ceea ce doriți:
$header = [
'col1' => $this->t('COL1'),
'col2' => $this->t('COL2'),
];
$rânduri = [];
$rânduri[] = [
'col1' => 'rând-1-celula-1',
'col2' => 'rând-1-celula-2',
];
$rânduri[] = [
'col1' => 'rând-2-celula-1',
'col2' => ['date' => [
'#type' => 'selectați',
'#title' => $this->t('Selectați elementul'),
'#options' => [
'1' => $this->t('One'),
'2' => $this->t('Doi'),
'3' => $this->t('Trei'),
],
]],
];
$form['test'] = [
'#type' => 'tableselect',
'#header' => $header,
'#options' => $rows,
];