Я использую компонент pakeinator для поиска данных.Я могу получить данные, но когда я перехожу на следующую страницу или сортирую, я получаю сообщение об ошибке.
Примечание (8): неопределенная переменная: auditLog [APP \ View \ Audits \ filter_trails.ctp, строка 92] Предупреждение (2): указан неверный аргумент для foreach () [APP \ View \ Audits \ filter_trails.ctp, строка 92]
Примечание (8): неопределенный индекс: count [CORE \ Cake\ View \ Helper \ PaginatorHelper.php, строка 672] Примечание (8): неопределенный индекс: предел [CORE \ Cake \ View \ Helper \ PaginatorHelper.php, строка 675] Примечание (8): неопределенный индекс: количество [CORE \ Cake\ View \ Helper \ PaginatorHelper.php, строка 676] Примечание (8): неопределенный индекс: count [CORE \ Cake \ View \ Helper \ PaginatorHelper.php, строка 677] Примечание (8): неопределенный индекс: текущий [CORE \ Cake\ View \ Helper \ PaginatorHelper.php, строка 695] Примечание (8): неопределенный индекс: count [CORE \ Cake \ View \ Helper \ PaginatorHelper.php, строка 696] Страница 1 из 1, где показаны записи из общего числа.
Это мой код в контроллере: public function filterTrails () {
if (isset($this->request->data['AuditFilter'])) {
$keywords = $this->request->data['AuditFilter']['keyword'];
$date_from = $this->request->data['AuditFilter']['date_from'];
$date_to = $this->request->data['AuditFilter']['date_to'];
if (!empty($date_from && !empty($date_to))){
$this->paginate = array(
'fields' => 'audit.event, audit.model, audit.created, audit.ip_address, auditchange.modifiedby,auditchange.column_name , auditchange.old_value, auditchange.new_value',
'joins' => array(
array(
'table' => 'audit_changes', 'alias' => 'auditchange', 'type' => 'Inner', 'conditions' => 'auditchange.audit_id = audit.id'
)
),
'conditions' => array(
'or' => array(
'Audit.event LIKE' => "%$keywords%" ,
'Audit.ip_address LIKE ' => "%$keywords%" ,
'Audit.model LIKE' => "%$keywords%"),
'AND' => array('Audit.created BETWEEN ? and ?' => array($date_from, $date_to))
)
);
} else {
$this->paginate = array(
'fields' => 'audit.event, audit.model, audit.created, audit.ip_address, auditchange.modifiedby,auditchange.column_name , auditchange.old_value, auditchange.new_value',
'joins' => array(
array(
'table' => 'audit_changes', 'alias' => 'auditchange', 'type' => 'Inner', 'conditions' => 'auditchange.audit_id = audit.id'
)
),
'conditions' => array(
'or' => array(
'Audit.event LIKE' => "%$keywords%",
'Audit.ip_address LIKE ' => "%$keywords%" ,
'Audit.model' => "%$keywords%",
'auditchange.modifiedby LIKE' => "%$keywords%")
)
);
}
$data = $this->Paginator->paginate('Audit');
$this->set('auditLog', $data);
Тогда, на мой взгляд, этоэто то, что я сделал:
<?php $this->Paginator->options(array('url' => $this->passedArgs)); ?>
<table class="table table-striped table-bordered dataTable"
role="grid" aria-describedby="basicExample_inf">
<thead>
<tr role="row">
<th style="width: 79.667px;"><?php echo $this->Paginator->sort('ip_address', 'Origin'); ?></th>
<th style="width: 79.3333px;"><?php echo $this->Paginator->sort('modifiedby','User'); ?></th>
<th style="width: 79.3333px;"><?php echo $this->Paginator->sort('created', 'Creation Time'); ?></th>
<th style="width: 100.667px;"><?php echo $this->Paginator->sort('event', 'Operation'); ?></th>
<th style="width: 100.667px;"><?php echo $this->Paginator->sort('model'); ?></th>
<th style="width: 100.667px;"><?php echo $this->Paginator->sort('column_name'); ?></th>
<!-- <th style="width: 50.333px;"><?php /*echo $this->Paginator->sort('old_value'); */?></th>
<th style="width: 50.333px;"><?php /*echo $this->Paginator->sort('new_value'); */?></th>-->
</tr>
</thead>
<tbody>
<?php foreach ($auditLog as $audit):; ?>
<tr>
<td><?php echo $audit['Audit']['ip_address']; ?></td>
<td><?php echo $audit['AuditChange'][0]['modifiedby']; ?></td>
<td><?php echo $audit['Audit']['created']; ?></td>
<td><?php echo $audit['Audit']['event']; ?></td>
<td><?php echo $audit['Audit']['model']; ?></td>
<td><?php echo $audit['AuditChange'][0]['column_name']; ?></td>
<!--<td style="width: 50.333px;"><?php /*echo $audit['AuditChange'][0]['old_value']; */?></td>
<td style="width: 50.333px;"><?php /*echo $audit['AuditChange'][0]['new_value']; */?></td>-->
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="row">
<div class="col-sm-12 col-md-5">
<div class="dataTables_info" id="basicExample_info" role="status"
aria-live="polite"><?php
echo $this->Paginator->counter(array('format' => __('Page {:page} of {:pages}, showing {:current} records out of {:count} total.')
));
?>
</div>
</div>
<div class="col-sm-12 col-md-7">
<div class="dataTables_paginate paging_simple_numbers" id="basicExample_paginate">
<ul class="pagination">
<ul class="pagination justify-content-end">
<?php
echo $this->Paginator->prev('<i class = "fa fa-angle-double-left"> Previous</i>', array('escape' => false, 'tag' => 'li'), null, array('escape' => false, 'tag' => 'li', 'class' => 'page-item disabled', 'disabledTag' => 'a'));
echo $this->Paginator->numbers(array('separator' => '', 'currentTag' => 'a', 'currentClass' => 'active', 'tag' => 'li', 'first' => 1));
echo $this->Paginator->next('Next <i class = "fa fa-angle-double-right"></i>', array('escape' => false, 'tag' => 'li', 'currentClass' => 'disabled'), null, array('escape' => false, 'tag' => 'li', 'class' => 'disabled', 'disabledTag' => 'a', 'style' => 'display: inline-block; border: 1px solid #ddd;padding: 0.5em 1em'));
?>
</ul>
</ul>
</div>
</div>
</div>
Может кто-нибудь помочь, где я иду не так?