CakePHP 2.1 使用包含条件进行查找

2024-02-13

我有以下型号。

  1. 行业(ID,名称)
  2. Movie(id, name, Industry_id) [行业有很多电影]
  3. Trailer(id, name, movie_id) [电影有很多预告片]

我需要为每个找到 6 个最新预告片Industry。每部电影不需要有预告片,也可以有多个[0-n]。

结果必须包含一系列具有至少一个预告片的电影。

$this->Industry->find('all', array(
    'contain' => array(
        'Movie' => array(
            'Trailer' => array(
                'limit' => 1
            ),
            'order' => 'Movie.release DESC',
            'limit' => 6
        )
    ),
    'order' => 'Industry.name ASC'
));

选项 1(IMO 最佳选项):

你走在正确的轨道上 - 你现在需要的只是添加使用CakePHP的CouterCache http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#countercache-cache-your-count.

基本上,你设置'counterCache' => true在你的$belongsTo关联,并添加一个字段:singularModel_count(在你的情况下,这将是trailer_count领域中的movies桌子)。然后,您可以根据该字段进行条件调整(请参阅下面更改的代码)。

CakePHP 的 CounterCache 通过在通过 CakePHP 方法添加/删除某些内容时添加/减去内容来自动跟踪其拥有的项目数量。

$this->Industry->find('all', array(
    'contain' => array(
        'Movie' => array(
            'conditions' => array(
                'Movie.trailer_count >' => 0  // <-- Notice this addition
            ),
            'order' => 'Movie.release DESC',
            'limit' => 6,
            'Trailer' => array(
                'limit' => 1
            ),
        )
    ),
    'order' => 'Industry.name ASC'
));

选项2:

另一种选择是使用 JOIN(请参阅CakePHP 加入 http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables)。当 CakePHP 查询“contain()”调用的每个模型时,它实际上会执行单独的查询,然后在返回给您之前连接数据。因此,您不能根据子模型的条件来限制父模型,因为它们实际上是单独的查询,并且 MySQL 不会知道您在条件中尝试引用哪个表。

选项 2 的缺点是,它会使返回多个预告片之类的事情变得困难,因为您将在电影和预告片之间进行 INNER JOIN(可能)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CakePHP 2.1 使用包含条件进行查找 的相关文章

  • CakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/更干净的 URL

    当我使用 CakePHP Paging 时 我得到一个像这样的 url http example com php page 2 我必须在控制器 视图和routes php中更改什么才能创建这样的工作网址 http example com p
  • 在 HIVE 中查找函数

    我想检查一个字段是否包含字符串 我想要一个如下所示的函数 FIND string to find field to search 我的数据如下所示 field to search no match in this string record
  • 使用 git 维护不同版本的 web 应用程序的工作流程?

    在我的公司 我们已经使用 git 几个月了 我们对此很高兴 但我们仍然没有getgit 为完整的 100 我们的主要产品是一个提供不同语言的网站 前端 管理后端 其中一些网站提供了其他网站不应该提供的功能 例如 需要在给定表单上填写的字段类
  • MPL pos 是一个未记录的元函数吗?

    里面有下面的示例代码BOOST MPL 文档find算法 http www boost org doc libs 1 46 1 libs mpl doc refmanual find html typedef vector
  • 如何将单词与 C# 的 contains 函数精确匹配?

    我试图通过 C 读出脚本并确定它们是否包含某些单词 但这些单词应该是相同而不是只包含我正在寻找的内容 有没有办法使用contains 功能 挑出单词 并检查它是否与确切的单词相同 我怎样才能确定两者是否contains and 与搜索词 目
  • 来自模型和控制器的 cakephp 验证

    我已经在模型中进行了验证 另外 我在控制器中进行了一些验证以检查验证码 此后 应用程序不再显示模型验证错误 如果我评论控制器代码 模型验证工作正常并显示错误 两个都不行 型号代码 示例 class User extends AppModel
  • 查找出现次数最多的单词

    搜索文档中出现次数最多的单词的最佳方法 算法 是什么 查找文档中出现次数最多的单词可以通过简单的 O n 时间复杂度完成直方图 http en wikipedia org wiki Histogram 基于哈希 histogram lt n
  • Cakephp Auth: $this->Auth->login错误消息

    我正在使用身份验证组件 我在 beforeFilter 中设置 this gt Auth gt loginError 但我还有另一种可能性 如果用户输入的用户名和密码正确 但 User status pending 我怎样才能显示不同的消息
  • 基于 GB 且仅限数字的电话号码的正则表达式

    我想要一个仅允许数字电话号码 例如 1234567890 以及 GB 格式号码 例如 123 456 7890 的正则表达式代码 该表达式必须适用于这两种情况 目前我正在使用下面的正则表达式 它只允许 GB 电话号码 d 3 s d 3 s
  • CakePHP 无法写入某些文件

    我开始使用 CakePHP 为我的框架开发一个网站 我实际上刚刚开始并且已经遇到了错误 我无法理解它们的含义 Warning cake core cache was unable to write cake dev en us to Fil
  • 如何让 Ruby 的 Find.find 遵循符号链接?

    我有一个文件层次结构 一些子目录是相对符号链接 我在用Ruby s Find find http apidock com ruby Find爬行这些目录并找到一些特定的文件 但是 它不会查找任何符号链接的目录 它遵循符号链接的文件 看着源代
  • 使用文本框搜索 datagridview 中的列 (vb.net)

    如何使用文本框搜索 datagridview 中的列 我正在使用 vb net 2010 我有一个带有数据源的 Datagridview 下面是我用于填充 datagridview 的代码 网格视图将有 4 列 Private Sub Lo
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • Perl 初学者:如何查找/替换文件中的 ASCII 字符?

    我对 Perl 完全陌生 我认为这将是解决我的简单任务的最佳语言 我需要将二进制文件转换为可读的文件 并且需要查找和替换字符串 例如 x00 x39 into x09 选项卡 或类似的东西 从 bash 开始 我从以下内容开始 效果很好 p
  • 我可以停止 CakePHP 获取查询的所有行吗?

    我正在使用 CakePHP 和 modelName gt find 调用选择相当多的行 可能是数百行 通常 在 PHP MySQL 中这当然不会成为问题 因为您在 while 循环中获取它们 但是 CakePHP 将所有行加载到一个数组中
  • 有没有 CakePHP 离线手册

    曾经有过 但似乎没有任何直接联系 经过一番挖掘 发现了一些答案 我认为分享这些答案会很有用 这些是一页中的手册链接 对于离线使用很有用 使用 Dardo Sordi Bogado 的构建脚本或创建 PDF 1 2 一页手册https web
  • CakePHP GROUP 和 COUNT 个项目在列表中返回

    我知道这里有一些类似的问题 但它们都是关于使用时的 Model gt find all 但这不是我正在做的 我正在做的 Model gt find list 这就是工作与不工作之间的区别 给定一组产品 我想找到该组中的所有品牌以及每个品牌的
  • 如何在 Perl 脚本中递归查找文件/文件夹?

    我有一个 perl 脚本 我编写了该脚本来递归地搜索 Windows 文件夹中的文件 我输入搜索文本作为 perl 脚本运行时参数 以查找名称中包含此文本的文件 perl脚本如下 use Cwd file1 ARGV 0 res1 glob
  • CakePHP Facebook 集成与 CakePHP-Facebook-Plugin 的注销问题

    我正在寻找一种方法CakePHP Facebook 插件 https github com webtechnick CakePHP Facebook Plugin让用户退出我的应用程序 但不让他们退出他们自己的 Facebook 如果我调用
  • CakePHP 验证错误消息

    我正在尝试修改 CakePHP 显示错误消息的方式 下面是用于显示错误的通用模板 div class error message Please enter at least 3 characters div 我想像下面这样设置错误的样式

随机推荐

  • 在远程 ssh 命令中传递变量

    我希望能够使用 ssh 从我的机器运行命令并传递环境变量 BUILD NUMBER 这就是我正在尝试的 ssh email protected cdn cgi l email protection tools myScript pl BUI
  • 为树状图中的刻度标签着色以匹配簇颜色

    如何为树状图的标签单独着色 使其与 MATLAB 中簇的颜色相匹配 这是使用下面我的答案中的代码生成的所需输出示例 请注意 标签只是 50 个字符系列 A r 如果有更直接的方法来做到这一点 请发布答案 因为我无法通过谷歌搜索找到解决方案
  • 两个节点之间的设备树依赖关系

    我有两个设备树节点 一个设置 GPIO 引脚 另一个配置一个 i2c 总线 例如 gpio2 en gpio gpio hog gpios lt 5 0 gt output high i2c1 gpiom1 gpio 27 compatib
  • SQL Server:搜索所有表中的特定 GUID

    我发现需要清理一些数据 并且我需要找到一些特定的指南 即唯一标识符 在 SQL Server 我想出了一个存储过程SELECT从当前数据库中每个表的每个 uniqueidentifier 列中查找 如果找到 guid 则返回一个结果集 它使
  • 为什么 fs.createReadStream ... pipeline(res) 锁定读取文件?

    我正在使用 Express 传输音频和视频文件根据这个答案 https stackoverflow com a 24977085 304832 相关代码如下 function streamMedia filePath req res cod
  • 是否可以使用 ASP.NET MVC 创建登录系统但不使用会员提供程序?

    我有一个包含用户表的现有数据库 我们计划使用该数据库并将其用于在 ASP NET MVC 中构建的新系统 然而 我不确定的是我是否能够创建一个不使用内置帐户控制器或常规会员资格提供程序的登录系统 以便我们仍然可以使用现有的表结构 所以我的问
  • Javascript 发光/脉动效果在点击时停止

    我有以下 Javascript 来使文本链接连续发光 脉动 此链接显示同一页面的另一个部分 因此我希望它在用户单击它后停止 所以基本
  • NSDictionary 按浮点数形式对键进行排序

    基本上我有一个带有键和值的 NSDictionary 键都是数字 但目前它们是字符串 我希望能够将它们作为数字进行比较以便对它们进行排序 例如 如果我有这样的字典 100 gt id object 20 gt id object 10 gt
  • 在 ASP.NET MVC 应用程序中使用 HandleErrorAttribute

    我对在 MVC 5 应用程序中使用 HandleErrorAttribute 的最佳方式有疑问 众所周知 我们可以将此属性添加到全局过滤器中 如下所示 filters Add new HandleErrorAttribute View Er
  • 如何使用 jQuery 动态调用 javascript 对象的属性

    大家好 我有一个带有一些属性的 javascript 对象 比如说 function Animal this id this name 我需要以动态方式调用 id 函数来获取和设置它的值 像这样 Animal animal new Anim
  • 手工SHA-256,计算SHA-256初始单词

    我正在阅读出版物FIPS 180 4 https csrc nist gov csrc media publications fips 180 4 final documents fips180 4 draft aug2014 pdf并尝试
  • C# Databound ComboBox 自动更新

    我有一个绑定到数据库表的组合框 当用户将新数据插入表中时 我希望组合框自动更新以显示该数据 但是我不确定如何执行此操作 帮助将不胜感激 我的一个程序中有类似的东西 每当我的 datagridview 更新时 我都会清空组合框并重新填充它 大
  • 如何在另一个查询的 while 循环内运行 SQL 查询

    当 photoId 直接位于语句上而不是变量时 以下操作完全没有问题 img query mysqli query con SELECT FROM imgs WHERE photoid 103 or die mysqli error con
  • 模拟器打开时读取私人有效用户设置警告

    当我点击 textField 在 Xcode 中打开模拟器键盘时 会出现以下错误 2017 01 01 17 19 38 668544 FirebaseChat 12334 2921090 MC System group container
  • 信号处理程序返回到哪里?

    假设当接收并处理信号时 进程正在 main 方法中运行 当信号处理程序完成时 进程是否返回到 main 中接收信号的行 或者返回到信号调用 附 我知道我自己可以快速测试这一点 但当我无法访问我的电脑时 我就想到了这个想法 Thanks 当信
  • 在 Windows 7 上安装 Apache Solr 4.1 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我怎么能够安装apache solr
  • 与曼哈顿距离的距离变换 - Python / NumPy / SciPy

    我想使用 Python 和 Numpy 生成这样的二维数组 0 1 2 3 4 4 3 4 1 2 3 4 4 3 2 3 2 3 4 4 3 2 1 2 3 4 4 3 2 1 0 1 4 5 5 4 3 2 1 2 几乎数字从零开始左右
  • 何时使用关联实体?

    假设有两个实体 分别称为 Employee 和 Campaign 一名员工可以参与多项活动 一项活动可以有多名员工 我已经知道这是多对多的关系 在绘制 ER 图 Chen 表示法 时 这种关系用菱形来表示 但关联实体有一个单独的符号 它象征
  • CSS3 calc 函数:mod 运算符的问题

    我在用着 宽度 计算 100 mod 320 但它总是返回父元素的完整宽度 语法似乎没有任何问题 看起来像是一个支持问题 在 chrome 37 和 firefox 32 0 上测试 这里有一个fiddle http jsfiddle ne
  • CakePHP 2.1 使用包含条件进行查找

    我有以下型号 行业 ID 名称 Movie id name Industry id 行业有很多电影 Trailer id name movie id 电影有很多预告片 我需要为每个找到 6 个最新预告片Industry 每部电影不需要有预告