zend framework 数据交互如何使用面向对象

php中文网
发布: 2016-06-23 14:20:13
原创
911人浏览过

Zend Framework 面向对象 框架

php网站,使用框架是zend framework,在获取数据的时候一般都是写sql语句,用的fetchAll()方法获取数据,像这样:
$db->fetchAll($sql);
获取的是一个array集合,然后做处理,显示在页面上,这其中缺少了一个步骤,就是把数据填充到对象里面,通过对象的方式来赋值到页面,我在网上一直没有找到相关的例子,zend framework使用手册里面也没找到
   所以想请各位给我来个实际一点的例子,纯正的面向对象的,我的项目里面有写model层,但没用到过,在线求具体代码例子

回复讨论(解决方案)

各位,难道没人对这个感兴趣嘛?

"把数据填充到对象里面"这句话我就没看懂...

有点赞同楼上的说法

为什么要把数据赋给对象?再把对象传给页面??

我记得获取数据库适配器之后调用query($sql)方法对数据库进行查询返回的就是一个pdo对象
你可以打印出这个对象 对象里不仅有从数据库中查询到的数据
还包含很多表信息 什么字段 宽度之类的
没什么用嘛..

通常都是把这个对象再调用一下fetchAll()方法 转成数组

你如果实在想向页面传对象
我觉得可以这样做

你自己写好一个类
然后把fetchAll()出来的数组作为参数
传给这个类的构造方法
由构造方法给类中的成员变量赋值

这样也许是"把数据填充到对象里面"了
然后你把这个对象传给页面

但我觉得就算这样 你在view里要想输出对象
还是要对对象进行相关的处理操作




而且用了框架 怎么会没有用到model呢..
难道要用传统的php方法操作数据库么

这样的话,不用那么费力了,自己写个函数,把数组换成类就可以了,干什么一定要找框架里的 ,只要框架准许就可以了,

    大家回答很给力,但是不是我想要的答案,用框架的原因是可以在以后便于维护,扩展,而面向对象是编程的一个主要思路,如果只为实现功能,我就不会提出这个问题了,我需要的是在zend中,是否存在这样的一个库,可以将我查出来的数据转换成类的对象!继续求解。。。。

这么多菜鸟啊,zf2 中 这么多操作方式,Zend\Db\Sql,Zend\Db\TableGateway,Zend\Db\RowGateway,这么都不用啊

在db里写

class Db_Test{  function fetchData(){    $db=new Db();    $res=$db->fetchAll("select * from table");    return $res;  }}
登录后复制

在controller里写
class TestController extends  Zend_Controller_Action{  public function testAction(){    $dbclass=new Db_Test();    $data=$dbclass->fetchData();    $this->view->viewdata=$data;  }}
登录后复制

在模板里写
foreach($this->viewdata as $key=>$value){   echo $value;}
登录后复制

这么多菜鸟啊,zf2 中 这么多操作方式,Zend\Db\Sql,Zend\Db\TableGateway,Zend\Db\RowGateway,这么都不用啊
能说得详细一点吗,或者给出一段代码????

对象数组?
你先说一下为什么要这么做

你再说一下,这样做的应用场景

总不能为类而累吧

其实我就是做网站的,已经做完了,我现在给的问题完全是技术讨论

model层就是放一些业务逻辑
你应该是想把数组放在一个对象的属性上面,
然后在控制器传入一个对象进去。
那么在视图只要循环这个属性就可以获得数组。

我不是不能把数组传到页面,我所谓的对象,指的是数据库里面表,其属性就是表的字段,我无法做到的是把查询出来的数据赋值到表的字段上去?

$db->fetchAll($sql);获取的应该是一个对象集合,用toArray()方法才能转数组,你说的把数据放到对象赋值到页面这个真没明白啊。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号