使用 Zend_DB_Table 选择查询

2024-01-15

我有一个类似以下的代码

class Application_Model_Company  extends Zend_Db_Table_Abstract {
 protected $_name = 'companies';
 private $id;
 private $name;
 private $shortName;
 private $description;

 public static function getAllCompanies() {
 $companyObj = new self();
 $select  = $companyObj->select()->order(array('name'));
 $rows = $companyObj->fetchAll($select);
 if($rows) {
  $companies = array();
   foreach($rows as $row) {
    $company = new self();
    $company->id = $row->id;
    $company->name = $row->name;
    $company->shortName = $row->short_name;
    $company->description = $row->description;
    $companies[] = $comapny;
  }
    // return Company Objects
    return $companies;
  }else
   throw new Exception('Oops..');
 }
}

我需要从 getAllCompanies() 函数返回 Company 对象,但它返回 Zend_Db_Table_Row 对象。我该如何纠正这个问题?


您的模型类不应扩展表类。表类是单独的。如果从 Zend_Db 扩展任何内容,您的模型应该扩展行类。另外,您不应该直接将检索方法放在模型类上,它们会放在表类上。

这是因为在您尝试在此处使用的范例中,模型表示单行数据,Table 类将表表示为数据存储库,而 Rowset 类表示行(或模型)的集合。

要正确实施您在问题中所描述的内容,您需要执行以下操作:

class Application_Model_DbTable_Company extends Zend_Db_Table_Abstract
{
   // table name
   protected $_name = 'company';

   protected _$rowClass = 'Application_Model_Company';

   // your custom retrieval methods
}

class Application_Model_Company extends Zend_Db_Table_Row
{
  protected $_tableClass = 'Application_Model_DbTable_Company';
  // custom accessors and mutators
}

然而,实际上建议使用数据映射器模式的某种实现。查看快速开始 http://framework.zend.com/manual/en/learning.quickstart.create-model.html有关简化实现的完整教程。

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

使用 Zend_DB_Table 选择查询 的相关文章

  • Eclipse PDT + 代码完成根本不起作用

    我想启动一个新的 Zend 项目 目前我面临一些有关 Eclipse PDT 的问题 我的问题是 Eclipse for PHP 中的代码完成根本不起作用 我尝试了很多不同的教程等 例如制作一个新项目并导入文件 创建一个新的工作区并在那里导
  • 具有 http 身份验证的 Zend SOAP 服务器 WSDL URI

    我正在尝试使用 Zend Soap Server 设置 SOAP 服务 ZF1 我的问题是 WSDL URI 受密码保护 可以通过设置 https 用户名 来访问它 电子邮件受保护 cdn cgi l email protection 作为
  • 页面加载 - 页面之间出现白色“闪烁”

    有两个网站 一个正在运行 一个正在开发中 我正在将一个站点移植到 Zend Framework 出于可维护性 集成目的 原始 实时 站点具有无缝页面加载 它将加载 然后更新屏幕上的内容 同时保留页面上的背景图像 导航等 移植的网站 开发 会
  • 域对象和值对象 - 它们相等吗?

    通过查看 Zend 快速入门教程中的域对象示例以及考虑 DAO VO 模式的其他示例 它们似乎非常相似 我们能否推断出 值对象 与 域对象 是一样的 如果不是 您能澄清一下它们之间的区别吗 其中一个的功能是什么 如果另一个的功能又如何呢 我
  • 虚拟主机无法在 zend 框架中工作

    以下是我在 etc apache2 sites available 中的虚拟主机
  • 升级 Zend Framework - 步骤和指南

    我维护的网站目前使用的是 Zend Framework 1 8 0 该版本已经有 2 年多的历史了 我想升级到 1 11 11 但在寻找如何顺利完成此操作的基本指南方面遇到了一些困难 就像用最新文件覆盖library Zend文件夹一样简单
  • Zend_Db:如何从表中获取行数?

    我想知道一个表中有多少行 我使用的数据库是MySQL数据库 我已经有一个 Db Table 类 用于像这样的调用fetchAll 但我不需要表中的任何信息 只需要行数 如何在不调用的情况下获得表中所有行的计数fetchAll count d
  • FirePHP 并不总是写入日志消息

    我在 Bootstrap php 中设置了记录器 如下所示 logger new Zend Log if environment gt debug 1 stream fopen var www html rta rta log a fals
  • 日期未保存在mysql数据库中

    我在 MySQL 数据库中保存日期时遇到问题 测试一切 我正在尝试将 2010 01 01 例如 保存在 MySQL 数据库中 首先 我将 MySQL 字段设置为最新 这不起作用 但是当我将字段设置为字符串类型时 它确实将日期保存在数据库中
  • Zend Framework 路由:.html 扩展名

    我知道我以前见过这样做 但我在任何地方都找不到信息 我需要能够在 Zend Framework 中使用 html 扩展名进行路由 IE controller action html 应路由到适当的控制器 操作 我们有一个想法 用 htacc
  • 每个月的第一天

    如果我从当前日期开始 如何获得每个月的第一个星期五 我正在考虑使用 date gt get Zend WEEKDAY 并将其与星期五进行比较 然后与 DAY 进行比较 并检查它是否小于或等于 7 然后添加 1 个月 一定有更简单的东西吗 怎
  • (PHP):使用 Zend_Test_PHPUnit_DatabaseTestCase 测试模型

    当我运行 PHP 单元测试时 我得到 1 Test Model Mapper TestTest testTest Argument 1 passed to PHPUnit Extensions Database DataSet Defaul
  • 如何使用 zend 导入 CSV

    如何使用 zend 框架导入 CSV 文件 我应该使用 zend file transfer 还是有任何我必须研究的特殊类 另外 如果我使用 zend file transfer 是否有任何特殊的 CSV 验证器 你不必使用任何 zend
  • Zend IMAP 搜索和过滤器

    我如何使用 Gmail 中的过滤器进行搜索 就像获取带有特定标签的电子邮件列表或来自特定电子邮件地址的邮件列表一样 我无法在文档中找到它 注意 我使用 oAuth 进行身份验证 我希望这与搜索无关 Gmail 上的标签实际上是 从 IMAP
  • Zend Framework Zend_Form 装饰器: 位于按钮元素内部?

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 阅读 Google 文档电子表格

    是否可以使用 PHP 从 Google Docs 电子表格中提取行 在 SQL 中我会使用类似的东西 SELECT FROM table WHERE field value LIMIT 1 有没有办法做到这一点 我听说你应该使用 Zend
  • 如何在 Zend 中使用 cookie?

    如何使用 Zend Http Cookie 来设置和读取 cookie 我尝试像这样设置cookie cookie new Zend Http Cookie TestCookie TestValue localhost com 但没有生成c
  • zend 模块特定配置问题

    我使用 zend 框架构建 REST Web 服务 并且使用模块来分隔我的 api 版本 现在 我想为每个模块 v1 和 v2 都有一个单独的配置文件 主要用于指定单独的数据库连接 我有这样的目录结构 application modules
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp

随机推荐

  • 使用 godbolt 进入标准库调用

    我想知道各个编译器是如何实现的std random device 所以我把它放进去godbolt https godbolt org z 24H4SZ 不幸的是 它唯一说的是 std random device operator push
  • 您可以更改 WCF 客户端请求的 XML 声明吗?如果是这样,怎么办?

    我正在编写一个库来使用第三方 Web 服务 我显然无法更改 该库当前设置为 Net Standard 2 0 以便我可以在当前的应用程序 Net Framework 4 6 2 以及未来可能在 Net Core 中开发的项目中使用它 这不是
  • 求最大递增序列的长度

    用于查找整数数组中最大单调递增序列的长度的快速算法是什么 From 维基百科 最长递增子序列 http en wikipedia org wiki Longest increasing subsequence Efficient algor
  • cordova-plugin-file-transfer 的转换错误

    我想使用cordova 文件传输插件 https cordova apache org docs en latest reference cordova plugin file transfer 我通过使用它Ionic Native 传输模
  • 获取.NET中给定字符对和字体的字距调整偏移值

    如何获得给定的 2 个之间的间距调整char在 NET 中 在WPF应用程序中 例如 假设我有字体Times New Roman尺寸的22那是bold 字符将使用什么字距调整A and v 如何在我的 WPF 应用程序中获取该值 如果你徘徊
  • 在实践中如何使用 Ember 中的 findAll 和 peekAll ?

    From EmberJS 文档 http guides emberjs com v2 0 0 models finding records toc retrieving multiple records我有以下两种方法来检索给定类型的所有记
  • 编译OpenCV时出错,致命错误:stdlib.h:没有这样的文件或目录

    我正在尝试编译 OpenCV 我已经尝试过 master 分支 当前提交 dc9602e 和版本 标签 3 1 0 我使用的是Fedora 24 我首先尝试使用Fedora附带的gcc gcc GCC 6 2 1 20160916 Red
  • 检索权限列表

    我正在尝试检索设备中应用程序的权限 奇怪的是 对于某些应用程序 我确实得到了结果 而在其中一些应用程序中 我无法检索任何权限 也许为了获取应用程序的权限列表 应用程序必须设置一些特定的标志 因为如果我尝试以这种方式获取我的应用程序的权限列表
  • 如何在不设置系统范围属性的情况下将 HTTP 代理用于 JAX-WS 请求?

    我有一个应用程序需要向 Internet 上的系统发出 SOAP 客户端请求 因此它需要通过我们的 HTTP 代理 可以通过设置系统范围的值 例如系统属性 来做到这一点 Cowboy style Blow away anything any
  • 为什么 TableAdapter.Fill 数据源之间的性能差异

    我有一个 Windows 窗体应用程序DataGridView居住着一个TableAdapter 我正在使用Fill循环更新UI数据的方法Async像这样子 Private Async Sub updateUI Dim sw As New
  • 如何始终运行 Spyder 项目中的主文件

    我正在开发一个包含多个文件的Python项目 令人烦恼的是我必须在单击运行之前选择描述和调用main的文件 因为如果不是Spyder3 Anaconda 则运行当前选定的文件 如果打开并选择文件 如何从 mainPrjPy py 中的 ma
  • 将 LibTiff 安装到 Visual Studio 2010 [重复]

    这个问题在这里已经有答案了 可能的重复 在 Visual Studio 2010 中使用 LibTiff https stackoverflow com questions 4647791 using libtiff in visual s
  • 将按钮绑定到命令 (Windows Phone 7.5)

    我正在开发我的 Windows Phone 应用程序 它使用一些简单的数据绑定 我已经创建了一个基于 MvvM 编程方法的应用程序 我当前正在开发的应用程序也可以通过 MvvM 方法工作 因为我想让我的代码尽可能干净 所以我正在寻找一种方法
  • 如何与 NHibernate 映射一对多关系中的枚举?

    我有两张单独的桌子 users roles id user id value lt Represented by the enum 还有他们的模型 class User int id IList
  • 在word文档中插入图片

    这是我第一次在 Apache POI 上工作 我要问的问题已经在这个网站上提出了 但没有给出明确的答案 所以我别无选择 只能接受你们的帮助 我正在尝试编写一个java程序 它从一个文件夹中获取图像并将该图像插入到word文档中 我在这个程序
  • 如何将 Django 模型上的属性(虚拟字段)公开为 TastyPie ModelResource 中的字段

    我在 Django 模型中有一个属性 我想通过 TastyPie ModelResource 公开该属性 我的模型是 class UserProfile models Model genderChoices u M u Male u F u
  • Trie、后缀树、后缀数组

    哪种结构提供最佳的性能结果 trie 前缀树 后缀树还是后缀数组 还有其他类似的结构吗 这些结构的良好 Java 实现是什么 编辑 在这种情况下 我想在大型名称词典和大量自然语言文本之间进行字符串匹配 以便识别文本上词典的名称 特里树是第一
  • 在 chrome DevTools/Console 面板中复制文本无法正常工作

    描述错误 最近 在 macOS 版本 12 6 3 上使用 Chrome 版本 112 0 5615 49 时 我在从 DevTools 的控制台面板复制和粘贴时遇到了问题 选择一个单词并复制后 当我粘贴它时 它总是向后移动2个字符 这可能
  • 最好的 JavaScript 日期解析器和格式化器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Zend_DB_Table 选择查询

    我有一个类似以下的代码 class Application Model Company extends Zend Db Table Abstract protected name companies private id private n