【问题标题】:PHP/MySQL Activerecord, get relationship row countPHP/MySQL Activerecord,获取关系行数
【发布时间】:2023-04-03 00:33:02
【问题描述】:

我有两张桌子:

media_folders
id, title

media
id, folder_id, title

他们每个人都有自己的模型

Media, MediaFolder。除了设置了static $table_name 属性外,它们没有什么特别之处。现在我可以将$has_many 分配给MediaFolder 类,该类将找到所有关联的Media。但是,我只需要获取媒体文件夹中的媒体数量,而不是实际对象本身。我想在一个名为 filesMediaFolder 对象中得到一个属性,该属性计算有多少媒体行具有当前文件夹的 folder_id

我该怎么做?

【问题讨论】:

    标签: php mysql activerecord relational-database


    【解决方案1】:

    了解您的情况,但不是您的确切问题,因此您能否提供更多详细信息,例如:
    1. 你的问题是与构建 SQL 查询有关吗?
    2. 使用活动记录构建查询是否存在问题..(如果是,您使用的是哪个框架)
    需要更多描述。

    【讨论】:

    • 基本上,我只想在 MediaFolder 中有一个名为 files 的属性,该属性具有所有关联 Media 行的计数,而无需为每一行生成 Media 对象。我的解决方法是一个自定义查询和一个名为 get_files_count 的方法,但我想知道是否有内置的方法可以使用 PHP ActiveRecord 执行此操作。
    • 是的,它存在于 PHP 活动记录中,因为我正在使用提供此支持的 codeigniter 框架。这是其中一个示例的链接:stackoverflow.com/questions/2599488/…
    【解决方案2】:

    如果只是一些 SQL:

    $sql = "SELECT mf.folder_id, count(m.id) as files
              FROM media_folders mf, media m
             WHERE mf.id = m.folder_id
             GROUP BY mf.folder_id"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      相关资源
      最近更新 更多