-
Notifications
You must be signed in to change notification settings - Fork 29
Getting Started
1. Setup Controller to Handle DataTable Requests
Setting it up in AppController will make it available in all controllers. You may want it for just one controller.
<?php
App::uses('Controller', 'Controller');
App::uses('DataTableRequestHandlerTrait', 'DataTable.Lib');
class AppController extends Controller {
use DataTableRequestHandlerTrait;
}2. Add Javascript Code to Layout Add the following after jquery and datatable assets:
<?php
echo $this->fetch('dataTableSettings');
echo $this->fetch('script');
?>3. Add DataTable Component and Helper To Controller With Configuration See Component Configuration
4. Pass the Config to The View and Render The Table In the action that will contain the tables, set the view var that will be used by the helper to generate the markup.
// Controller
public function index() {
$this->DataTable->setViewVar('{{config_name}}');
}<!-- View -->
<h1>Users</h1>
<?php echo $this->DataTable->render('{{config_name}}'); ?>5. Generate DataTable Response View
Create app/View/{{Model}}/datatable/{{config_name}}.ctp
This view file will use DataTableResponseView which provides $this->dtResponse property that will be returned to the javascript lib. Build the aaData property with the results that are stored in $dtResults view var.
If autoData and autoRender are being used, this file is not required. See Component Configuration for more information on autoData and autoRender.
<?php
foreach ($dtResults as $result) {
$this->dtResponse['aaData'][] = [
$result['User']['id'],
$result['User']['username'],
$result['User']['email'],
'some action links here',
];
}And you're done!