Zend Framework使用Zend_Db_Table来实现类似于ActiveRecord的ORM功能。和任何ORM一样,首先需要为它配置数据库的相关信息(服务器,用户名,密码,数据库名,等等)。虽然这并不复杂,但本文不拟讨论这些细节问题。(Zend Framework在它的Roadmap中计划支持YAML!)一旦配置完成后,可以在/application/models子目录下创建和数据库表相对应的模型类。
举例来说,在数据库中存在表user,结构如下:
CREATE TABLE user (
id int(11) NOT NULL auto_increment,
name varchar(100) NOT NULL,
password varchar(100) NOT NULL,
PRIMARY KEY (id)
)
相应地,可以在models目录下创建一个模型:
root/application/models/User.php
<?php
class User extends Zend_Db_Table
{
protected $_name = 'user';
}
所有数据库相关的代码,都已经被封装在抽象类Zend_Db_Table中。有ROR经验的读者,可以和ROR中的模型对比一下:
Class User < ActiveRecord::Base
End
Zend Framework的模型仅仅多出了一行,就是把数据库表名赋予$_name属性。
下面来看看怎么使用这个User模型类。新的indexAction方法如下:
function indexAction() {
…
$user = new User();
$view->user = $user->fetchAll();
echo $view->render();
}
User类的fetchAll()返回一个数组,包含该表中所有的内容。这个数组被存放在$view的user属性。接下来,看看新的index.phtml:
…
<table>
<tr>
<th>Id</th>
<th>Name</th>
</tr>
<?php foreach($this->user as $user) : ?>
<tr>
<td><?php echo $this->escape($user->id);?></td>
<td><?php echo $this->escape($user->name);?></td>
</tr>
<?php endforeach; ?>
</table>
…
这段代码遍历了$this->user,并将它的属性依次打印出来。
分享到:
相关推荐
据我所知,没有其他的CMS实际上允许开发人员如此轻松而又直接地扩展CMS,通常您会被锁定在特定且有限的插件框架中-如果您试图为自定义应用程序构建可扩展和可扩展的CMS,这确实很麻烦。 因此,如果您不喜欢BalCMS或...
一个轻量级的PHP zend framework ORM框架
本文实例讲述了Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法。分享给大家供大家参考,具体如下: 同时公司又要开发一个群组功能..我也就想运用一下Zend_Form来实现创建群组的功能.主要还是...
该库是Zend Framework 2,Doctrine的对象管理器(同样支持ORM / ODM)和ElasticSearch之间的小型集成层。 它使用Elastica作为与ElasticSearch服务器通信的适配器,并且可以处理任何映射的POPO到ElasticSearch文档...
ZfrCash 是一个高级 Zend Framework 2 模块,可简化您处理付款的方式。 它在内部使用 Stripe 作为支付网关,使用 。 以下是 ZfrCash 允许的一些功能: 提供干净的接口来表示 Stripe 客户和计费对象(可以接收订阅...
Doctrine行为扩展该软件包包含Doctrine ORM和...安装$作曲者需要gedmo / doctrine-extensions Symfony 2 Symfony 4 Laravel 5 Zend Framework 2 Extensions ORM和MongoDB ODM的可责怪性-更新cre上的字符串或引用字段
完全追随了目前最新的PHP技术,整个内核已经从zend framework脱离出来,用了很多知名开源项目,底层用了symfony一些组件,HTTP用了guzzle ,ORM用了 Doctrine,等等,zend framework已经沦为附加框架,只用了其中几...
由于对Zend Framework 2的长期支持于2018-03-31结束,因此强烈建议所有当前依赖此软件包的用户迁移到Zend Framework 3或其他框架。 此模块旨在为Zend\Permissions\Acl提供立面,从而简化其在模块和应用程序中的...
"require" : { "php" : ">=5.4.0", "zendframework/zendframework" : "~2.3", "doctrine/doctrine-orm-module" : "~0.8", "los/losbase" : "~2.5", "los/losui" : "~1.0", "zf-commons/zfc-user-doctrine-orm" : "~...
ViMbAdmin虚拟邮箱管理ViMbAdmin项目( vim-be-admin )提供了一个基于... ViMbAdmin使用我们自己的Web应用程序框架以PHP编写,其中包括Zend Framework,Doctrine ORM和带有JQuery和Bootstrap的Smarty模板系统。( )
说明:项目采用composer依赖构建,框架采用ZendFramework2,表现层使用ExtJS 4.1.x,ORM采用Propel,项目借鉴J2EE三层设计模式(应用到了Service、DAO,并通过mnapoli/php-di-zf2进行依赖注入以更好的提高可测性)...
如果您使用 Zend Framework 2,您现在可以通过将它作为SwissEngine\Tools\Doctrine\Extension添加到config/application.config.php来在您的应用程序中启用该模块。 只要确保,为了让它工作,你在你的配置文件中
SlmQueue是Laminas(以前称为Zend Framework)和Mezzio(以前称为Zend Expressive)应用程序的作业队列抽象层。 它支持各种作业队列系统,并使您的应用程序独立于所使用的基础系统。 当前受支持的系统各自具有自己...
Sphex是一种轻巧易用的OOP PHP 5框架,使用AMF二进制格式作为Flex或Flash应用程序以及任何启用PDO的数据库的网关。 该项目正在使用Zend_AMF和Doctrine ORM。
ZendDiagnostics 存储库已废弃2019-12-31 该存储库已移至 。 在实际PHP应用程序中执行诊断测试。 文件问题位于 文档位于
是一个管理繁忙的法庭口译办公室的网络应用程序(在讲英语的美国司法系统中)。 InterpretersOffice 由纽约南区美国地方法院的口译办公室开发和使用,可供任何其他有兴趣使用它的法院口译办公室免费使用。 创建它的...
7.4 :^ 4.1 :^ 1.1 :^ 1.3 :^ 3.1 :^ 3.4 :^ 1.1 :^ 1.2 :^ 1.2 :^ 1.1 :^ 1.8 :^ 3.1 :^ 3.12 :^ 2.8.1 :^ 2.2 :^ 4.1.1 :^ 1.3 :^ 3.40 :^ 5.2.1环境将以下环境变量添加到您的系统中,...