问题描述
我有一个OROCRM应用程序,并且有一个数据网格,需要使用以userNames命名的列进行扩展,并打算在自定义树枝单元格中显示数据。
为此,我制作了一个DataGridListener类,并在其中添加了扩展列的方法:
/**
* Creates specific column names for selected persons
*
* @param Datagrid $datagrid
* @param array $persons
*
* @return array
*/
protected function addColumnsForPersons(Datagrid $datagrid,array $persons): array
{
$config = $datagrid->getConfig();
$additionalColumns = [];
foreach ($persons as $person) {
$column = [
'label' => $person->getName(),'template' => 'MyBundle:Partials/Datagrid/Attendance:person_attendance.html.twig','type' => 'twig','frontend_type' => 'html','data_name' => 'person_' . $person->getId(),'data' => 'person_' . $person->getId(),'translatable' => false,'editable' => false,'align' => 'middle'
];
$config->addColumn('person_' . $person->getId(),$column);
$additionalColumns[] = 'person_' . $person->getId();
}
return $additionalColumns;
}
我还通过以下方式为人添加数据:
$wrapperData = $datagrid->getData();
foreach($attendancesAtDay as $attendance) {
// This block can be changed to a workaround
$dayData['person_' . $attendance['personid']] = (object)([
'arrival' => Carbon::createFromFormat('Y-m-d G:i:s',$attendance['arrival'])->format('H:i'),'leave' => Carbon::createFromFormat('Y-m-d G:i:s',$attendance['leave'])->format('H:i'),'logins' => $attendance['logins'],'worktime' => gmdate('H:i',$attendance['worktime'] * 60)
]);
}
$gridData[] = $dayData;
$wrapperData->setData($gridData);
模板是可访问的,PHPStorm可以遵循其引用链接,如下所示:
<div>
<div style="width:40px">
{{ value.worktime }}
</div>
<div style="width:40px">
{{ value.arrival }}
</div>
<div style="width:40px">
{{ value.leave }}
</div>
<div style="width:40px">
{{ value.logins }}
</div>
</div>
通过这种方法,我得到了以人员命名的列,但数据为空。使用xdebug,代码永远不会进入模板。
通过一些解决方法,如果我在foreach中更改该块,它将呈现所需的数据。
解决方法如下:
$dayData['person_' . $attendance['personid']] = sprintf(
'<table>
<tr>
<td>
Worktime
</td>
<td>
Arrival
</td>
<td>
Leave
</td>
<td>
Logins
</td>
</tr>
<tr>
<td>
%s
</td>
<td>
%s
</td>
<td>
%s
</td>
<td>
%s
</td>
</tr>
</table>',gmdate('H:i',$attendance['worktime'] * 60),Carbon::createFromFormat('Y-m-d G:i:s',$attendance['logins']);
我尝试使用数组代替对象而不成功,或者在var / logs / dev.log中出现任何错误消息。 我想避免这种解决方法,想知道为什么在我将Booth Twig模板添加到列和HTML代码作为数据的情况下,为什么不抛出错误,为什么不运行到单元格模板中呢? 那我怎么了? 感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)