CakePHP3.6:尽管 find() 像往常一样运行,但分页器返回零结果



对此感到非常困惑;只是使用标准的烘焙模板对我的模型进行CRUD访问。我正在从旧版本的蛋糕迁移这个项目,但同样,到目前为止,我只是使用库存烘焙的控制器和模板。

/**
* Index method
*
* @return CakeHttpResponse|void
*/
public function index() {
$this->paginate = [
'contain' => ['Associated1', 'Associated2', 'AssociatedEtc']
];
$myModels = $this->paginate($this->MyModel);  // returns zero results
$myModels_found = $this->MyModel->find('all'); // finds everything
$this->set(compact('model'));
}

CookBook 信息描述了以与最初烘焙的控制器完全不同的方式实现 Paginator (并且,在尝试了那里描述的实现后,得到了完全相同的结果(。

重要的是,就像在$myModel_found中一样,如果我只是通过$model->find()检索记录,那么所有内容都会像往常一样返回,因此连接到数据层没有问题。

如何配置分页器,使其实际检索我的记录?

更新

经过一番深入研究,我发现分页器只返回具有未关联关联的模型的零结果(即表Model1中的一行model2_id等为 0 或 null。即使我删除了contain条件,这种行为仍然存在。

**直到有时以前,即使是我也陷入了同样的情况。在我的控制器中,我有:

**/**

* Index method
*
* @return CakeHttpResponse|void
*/
public function index()
{
$query = $this->request->query('query');
$this->paginate = [
'contain' => ['Customers', 'Drivers'],
'limit'=>200,
'order'=>[
'pick_date'=>'desc'
]
];
if(!empty($query)){
$this->paginate = [
'conditions'=>[
'destination LIKE' => '%'.$query.'%',
'starting_point LIKE' => '%'.$query.'%'
]
];
} 
$rides =$this->paginate($this->Rides);
$this->set(compact('rides'));
}

我犯的错误在我的视图文件中:

<div class="form-group">
<label class="col-md-3 control-label">Customer</label>
<div class="col-md-4">
<?= $this->Form->control('customer_id',array('class'=>'form-control input-circle', 'options'=>$customers, 'label'=>false)) ?>
</div>
</div>

在我的情况下,"customer_id"的拼写是错误的,因此结果没有显示在视图表中。但是现在,它工作正常。

请检查相关列名称的所有拼写。

如果我在任何地方弄错了,请不要介意。我是 CakePHP 3 的学习者。

最新更新