当前位置: 首页 > 面试题库 >

在has_many上带有条件的CakePHP分页

皇甫福
2023-03-14
问题内容

所以我有一个User表和一个带有用户hasMany Histories的History表,并且我正在尝试在user表上实现分页。

我的问题是我进行了搜索,可以搜索的某些内容是“历史记录”表中的内容。有没有一种方法可以基于hasMany关联的表中的数据来过滤分页结果?最初看起来像是解决方案的Containable允许进行这样的筛选,但只能在关联数据的检索中,而不能在记录本身中进行检索(除非我遗漏了什么?)

有人必须解决吗?


问题答案:

由于它具有hasMany关系,因此Cake将需要进行2个单独的查询:1个在users表上,1个在history表上以检索所有关联。由于在第二次查询之前不会检索历史记录数据,因此无法通过WHERE条件过滤历史记录模型中找到的字段的第一条查询。

要解决此问题,您可以执行以下两项操作之一:

  1. 使用Containable对历史记录执行分页(因为历史记录属于用户,这意味着将仅执行1个查询)。

  2. 对用户执行分页操作,只是执行对历史记录的临时联接,以使其不再具有hasMany关系。

例如:

$this->User->bindModel(array('hasOne' => array('History')));
$this->paginate['User']['contain'][] = 'History';
$this->paginate('User', array('History.some_field' => 'some_value'));


 类似资料:
  • 问题内容: 对于似乎很简单的问题,我找不到解决方案。假设有2种实体类: 如何创建一个标准查询以返回包含至少一个满足给定条件(例如b.text =’condition’)的B实体的所有A? 问题答案: 我认为此链接可能很有用:http : //mikedesjardins.net/2008/09/22/hibernate-criteria- subqueries-exists/ 它包含以下有关如何创

  • 我有问题滚动“条款和条件”文本区的底部。应用程序是混合的,我给contex知道应用程序是混合的,它的工作

  • 我的角码出了什么问题?我得到以下错误: 无法读取BrowserDomAdapter.RemoveClass中未定义的属性“Remove”

  • 本文向大家介绍带有多个进度条的HTML5文件上传,包括了带有多个进度条的HTML5文件上传的使用技巧和注意事项,需要的朋友参考一下 为了使其正常工作,您需要解决xhr progress事件,该事件在所有列表项都已创建后就会触发。 该XHR 应该知道你想做什么-

  • 我想进行更新,但我想添加的条件检查不是基于主表的哈希/范围,而是基于GSI。 实际上,如果给定属性(即GSI的哈希)已经存在,我希望保存失败。 例如,在一个虚构的employees表中,“SSN”是散列键,“EmployeeId”上有一个GSI。这两个属性都必须是独一无二的。在保存员工时,我希望确保表中没有使用“SSN”或“EmployeeId”。我可以用表的散列,也就是SSN,但不能用GSI的散

  • 本文向大家介绍Layui实现带查询条件的分页,包括了Layui实现带查询条件的分页的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Layui实现带查询条件的分页,供大家参考,具体内容如下 这个前端UI框架是真的让人又爱又恨呐!想了很久的方案才行的通 这是全部源码: 这个业务只有一个问题那就是button,我们需要把button的标签换了,换成a标签 还有一个点就是在点击查询后,获取的