php - 如何在 CakePHP 3 中对结果数组进行分页
问题描述
我有一个find()
方法if else statement
可以查询数据库并将数据作为数组返回。该if
部分工作正常。问题出在else
零件上。当我尝试在浏览器中访问索引界面时,出现此错误。
Unable to locate an object compatible with paginate.
RuntimeException
从我到目前为止收集到的内容来看,这些paginate() method
作品使用的是对象而不是数组。我坚持如何达到我想要的结果。我是 CakePHP 的新手,我们将不胜感激。谢谢
/**
* Assets Controller
*
*
* @method \App\Model\Entity\Asset[] paginate($object = null, array $settings = [])
*/
class AssetsController extends AppController
{
/**
* Index method
*
* @return \Cake\Http\Response|void
*/
public function index()
{
$this->loadModel('Users');
$username = $this->request->session()->read('Auth.User.username');
$userdetail = $this->Users->find('all')->where(['username' => $username])->first();
$school = $userdetail->school_unit;
$roleid = $userdetail->role_id;
if ($roleid == 1) {
$this->paginate = [
'contain' => ['SchoolUnits', 'AssetConditions', 'AssetCategories', 'AssetGroups', 'AssetStatus']
];
$assets = $this->paginate($this->Assets);
$this->set(compact('assets'));
$this->set('_serialize', ['assets']);
} else {
$results = $this->Assets->find('all')->contain(['SchoolUnits', 'AssetConditions', 'AssetCategories', 'AssetGroups', 'AssetStatus'])->where(['school_unit_id' => $school])->first();
$assets = $this->paginate($this->$results);
$this->set(compact('assets'));
$this->set('_serialize', ['assets']);
}
}
解决方案
推荐阅读
- amazon-web-services - AWS GlueJob 错误 - 命令失败,退出代码为 137
- java - 在 Javamail 中未显示附件
- asp.net-core - 使用 IHostedService 运行 1 个任务
- flutter - Flutter Unhandled Exception: setState() 在构造函数中调用:
- python - 无法通过回传传递 django 模板变量数组以查看
- java - 如何在 Android Studio 的 Android 应用程序中添加 APN 策略?
- python - Pytest ModuleNotFoundError
- shell - 如何在 alpine linux 中比较变量并设置值
- node.js - 如何将结果从模型返回到nodejs中的控制器
- python - 如何将裁剪后的图像合并回原始图像?