TYPO3 - пользовательский запрос Extbase с QueryBuilder: как добавить экшн-шоу в URL, чтобы ссылки снова работали
Когда я запускаю этот запрос... в ссылках в моем представлении списка нет действия show, и они больше не работают:
controller.php
$uid = 10;
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tt_content');
$statement = $queryBuilder
->select('uid', 'pid', 'header')
->from('tt_content')
->where(
$queryBuilder->expr()->eq('uid', $uid)
)
->execute();
while ($row = $statement->fetchAll()) {
$this->view->assign('inet', $row);
}
Приставка:
<tr id="2">
<td>2</td>
<td class="name"><a href="code/?tx_code_code%5Brecord%5D%5Buid%5D=2&tx_code_code%5Brecord%5D%5Bcode%5D=25490004X&tx_code_code%5Brecord%5D%5Bname%5D=Company%20Name%20Inc&cHash=e8e3573028618746234">Company Name Inc</a></td>
</tr>
Когда я отлаживаю его, я вижу, что я отображаю следующий массив:
array(20 items)
0 => array(3 items)
uid => 1 (integer)
code => '213800' (6 chars)
name => 'Company Name Inc' (16 chars)
Как я могу заставить ссылки работать снова?
1 ответ
Решение
Менять
<f:link.action action="show" pageUid="43" arguments="{record:record}">{record.name}</f:link.action>
в
<f:link.action action="show" pageUid="43" arguments="{record:record.uid}">{record.name}</f:link.action>
потому что вы больше не получаете объекты, а массивы строк базы данных. Кроме того, в вашем списке действий отсутствуют параметры $minUid и $maxUid.