Add a link to a tableselect row I'm interested in adding a link in a tableselect form row. Utilizing the #options key I can only add columns with strings. I am able to add form elements in the #options array similar to the #rows array.
$rows[$nid] = [
    'edit_link' =&gt; [
        'class' =&gt; 'edit_link',
        'data' =&gt; [
            '#type' =&gt; 'link',
            '#url' =&gt; Url::fromRoute('group_manager.edit'),
            '#title' =&gt; 'test',
        ],
    ],
]

//…

$form['table'] = array(
    '#type' =&gt; 'tableselect',
    '#header' =&gt; $header,
    '#options' =&gt; $rows,
);

Implementing this example as is doesn't render this column in the table, so I assume it has failed somehow.
The 'edit_link' element works if the form is changed to a 'table' instead of 'tableselect'.
I solved my issue.
The links column was not rendered for the tableselect form because I didn't update my $header array with the new element name edit_link.
It appears a table form does not map the element names to the header names, meaning I did not have to update the header array for my link columns to appear.  As long as the element name was in the header array Tableselect would render the column.  I believe this to be the basis of my issue.