示例#1
0
 /**
  * Process ajax calls from DataTable widget to return records
  *
  * @param int $widgetId
  * @param array $data
  * @return \Ip\Response\Json
  */
 public function post($widgetId, $data)
 {
     $post = ipRequest()->getPost();
     if (isset($data['error']) || !isset($data['sourceId']) || !isset($data['tableTypeId'])) {
         return new \Ip\Response\Json(array('data' => ''));
     }
     $table = TableRepository::getTableOf($data['sourceId']);
     if ($table == null) {
         return new \Ip\Response\Json(array('data' => ''));
     }
     $tableType = TableType::get($data['tableTypeId']);
     $start = $post['start'];
     $length = $post['length'];
     $orderBy = $post['columns'][$post['order'][0]['column']]['data'];
     $orderDirection = $post['order'][0]['dir'];
     $searchValue = $post['search']['value'];
     $result = $table->getRecords($tableType->getSpecificColumns(), $start, $length, $orderBy, $orderDirection, $searchValue);
     return new \Ip\Response\Json($result);
 }