Я импортирую Bundle AliDatatableBundle на github, следуя шаг doc один за другим, за исключением того, что установка $ bin/vendor install
в установку, потому что с Symfony2.6 этого не нужно.
Когда я создаю функцию в своем контроллере и рендеринг в моей ветке, у меня есть эта ошибка :
Во время рендеринга шаблона было исключено исключение («Нет экземпляра, найденного для datatable, вы должны установить идентификатор datatable в своем действии с помощью« setDatatableId », используя идентификатор из вашего представления») в MySpaceGestionPatrimoinesBundle: Batiments: indexBatiments.html.twig по строке 37.
Вот код для контроллера :
/** * set datatable configs * * @return \Ali\DatatableBundle\Util\Datatable */ private function _datatable() { $controller_instance = $this; return $this->get('datatable') ->setDatatableId('batiments') //->setEntity("MySpaceDatabaseBundle:Batiments", "b") // replace "XXXMyBundle:Entity" by your entity ->setFields( array( "Nom" => 'b.nom', // Declaration for fields: "Reférence" => 'b.referencebatiment', // "label" => "alias.field_attribute_for_dql" "Ensembles" => 'b.ensembles', "_identifier_" => 'b.id') // you have to put the identifier field without label. Do not replace the "_identifier_" ) //->setWhere( // set your dql where statement //'x.address = :address', //array('address' => 'Paris') //) //->setOrder("x.created", "desc") // it's also possible to set the default order ->setHasAction(true); // you can disable action column from here by setting "false". } /** * Grid action * @return Response */ public function gridAction() { return $this->_datatable()->execute(); // call the "execute" method in your grid action } /** * Lists all entities. * @return Response */ public function indexAction() { $this->_datatable(); // call the datatable config initializer return $this->render('MySpaceGestionPatrimoinesBundle:Batiments:indexBatiments.html.twig'); // replace "XXXMyBundle:Module:index.html.twig" by yours }
И тогда код для моей ветки :
{% extends "MySpaceWelcomeBundle::layout.html.twig" %} {% block content %} <div class="jumbotron"> <h4><u>Rechercher un bâtiment et ses affectations spécifiques:</u></h4> <br> <div> {{ datatable({ 'id' : 'batiments', 'js' : { 'sAjaxSource' : path('mySpace_formulaire_recherche_batiments') } }) }} </div> </div> {% endblock %}
Я действительно не понимаю, кто-то может помочь мне исправить это?
Я уже очистил кеш, установил активы и снова взял с начала документ, я не понимаю.
Заранее спасибо.
Кажется, все было хорошо. Я не вижу проблемы здесь, если вы следовали за документом aliBundle. Попробуйте использовать JQuery datatable здесь , установка проще, я думаю и лучше для вашего проекта, если это управление вашими объектами в Symfony.
Если у вас есть вопросы по JQuery DataTables, не стесняйтесь спрашивать, я использую его для проекта Symfony.