我正在阅读AliDatatableBundle,但没有发现任何有用的东西,所以这是我的问题。这是我的_datatable
函数中的代码:
private function _datatable()
{
return $this->get('datatable')
->setEntity("ComunBundle:SolicitudUsuario", "su")
->setFields(
array(
"Tipo de Tramite" => 'tt.nombre',
"No. Solicitud" => 'su.id',
"Tipo de Solicitud" => 'tr.nombre',
"Estado" => 'es.nombre',
"Fecha" => 'su.fecha_creacion',
"_identifier_" => 'su.id')
)
->setWhere('su.usuario = :usuario', array('usuario' => $this->get('security.context')->getToken()->getUser()->getId()))
->addJoin('su.tipo_tramite', 'tt', 'Doctrine'ORM'Query'Expr'Join::INNER_JOIN)
->addJoin('su.tipo_registro', 'tr', 'Doctrine'ORM'Query'Expr'Join::INNER_JOIN)
->addJoin('su.estado_solicitud', 'es', 'Doctrine'ORM'Query'Expr'Join::INNER_JOIN)
->setOrder("su.fecha_creacion", "DESC")
->setHasAction(true);
}
正如你可能注意到的,有一个fecha_creacion
字段返回到视图中,这个[object Object]
我怀疑它是DateTime,所以我需要在发送到渲染/视图之前格式化它,但我不知道如何格式化,有什么建议吗?我不知道这里解释的自定义渲染是否是解决方案,但如果是,我仍然不知道。有什么帮助吗?
您在AliDatatableBundle中面临的问题可以通过使用https://github.com/AliHichem/AliDatatableBundle#-条令查询生成器,您可以在其中使用条令编写symfony2自定义查询。
通过使用aoColumnDefs,在Twitch文件下的位置(ali/datatable/Ari/DatatableBundle/Resources/views/Main/index.html.titch)渲染日期对象,您可以看到下面的示例,以便在数据表的第一列中渲染日期对象。
var $defaults = {
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aLengthMenu": [[5,10, 25, 50, -1], [5,10, 25, 50, "All"]],
"iDisplayLength": 10,
"bServerSide": true,
"bProcessing": true,
"sAjaxSource": null,
"bPaginate": true,
"bLengthChange": false,
//"aoColumnDefs": $aoColumnDefs, // you can comment this default one and write your own aoColumnDefs
"aoColumnDefs": [
{"aTargets": [0],"fnRender": function(dateobject){ return dateobject.aData[0].date }},
{"aTargets": [1],"fnRender": function(profile){
//making decision based on different row data
if(profile.aData[1] == 1)
return 'Admin';
else if(profile.aData[1] == 2)
return 'Consumer';
else
return 'Vendor';
}
},
{"aTargets": [2],"fnRender": function(name){
var $edit_url = strtr(
"{{ path(edit_route , { 'id': "xx" }) }}",
{ "xx": name.aData[{{fields|length}}-1] }
);
return "<a style='float:right; margin-right:10px' class='dialog' title='edit'href='"+$edit_url+"'>"+name.aData[2]+"</a>";
}
}
],
"fnDrawCallback": function(oSettings) {
var s = getWrapper();
if( multiple && $('.dataTables_multiple',$(s)).length==0){
$(s+' .dataTables_length').prepend(multiple_rawhtml);
}
},
"bSort": true,
"bFilter": {% if search %} true {% else %} false {% endif %},
"oLanguage": {
"sProcessing": '{{ 'Processing' | trans() }}',
"sLengthMenu": '{{ 'LengthMenu' | trans() }}',
"sZeroRecords": '{{ 'ZeroRecords' | trans() }}',
// "sInfo": '{{ 'Info' | trans() }}',
// "sInfoEmpty": '{{ 'InfoEmpty' | trans() }}',
"sInfoFiltered": '{{ 'InfoFiltered' | trans() }}',
// "sInfoPostFix": '{{ 'InfoPostFix' | trans() }}',
"sSearch": '{{ 'Search' | trans() }}',
"sLoadingRecords": '{{ 'LoadingRecords' | trans() }}',
"sUrl": "",
"oPaginate": {
"sFirst": '{{ 'First' | trans() }}',
"sPrevious": '{{ 'Previous' | trans() }}',
"sNext": '{{ 'Next' | trans() }}',
"sLast": '{{ 'Last' | trans() }}'
}
},
"bAutoWidth" : false
};
您还可以在位置(ali/datatable/Ari/DatatableBundle/Resources/views/Main)内设置不同的分支文件,使其具有不同的分支。在您的ownbundle分支文件中提供参数main_template
{数据表({'edit_route':'RouteForYourEntity_edit','delete_route':'RouteForYourEntity_delete','main_template':'AliDatatableBundle:Mayfile.html.trick','js':{"sAjaxSource":路径("RouteForYour_grid_action")}})}}