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

simonlify 2013-07-30 03:48:37
php网站,使用框架是zend framework,在获取数据的时候一般都是写sql语句,用的fetchAll()方法获取数据,像这样:
$db->fetchAll($sql);
获取的是一个array集合,然后做处理,显示在页面上,这其中缺少了一个步骤,就是把数据填充到对象里面,通过对象的方式来赋值到页面,我在网上一直没有找到相关的例子,zend framework使用手册里面也没找到
所以想请各位给我来个实际一点的例子,纯正的面向对象的,我的项目里面有写model层,但没用到过,在线求具体代码例子
...全文
372 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hx_Moon_ 2013-08-28
  • 打赏
  • 举报
回复
$db->fetchAll($sql);获取的应该是一个对象集合,用toArray()方法才能转数组,你说的把数据放到对象赋值到页面这个真没明白啊。
simonlify 2013-08-27
  • 打赏
  • 举报
回复
我不是不能把数组传到页面,我所谓的对象,指的是数据库里面表,其属性就是表的字段,我无法做到的是把查询出来的数据赋值到表的字段上去?
bing15 2013-08-27
  • 打赏
  • 举报
回复
model层就是放一些业务逻辑 你应该是想把数组放在一个对象的属性上面, 然后在控制器传入一个对象进去。 那么在视图只要循环这个属性就可以获得数组。
simonlify 2013-08-26
  • 打赏
  • 举报
回复
其实我就是做网站的,已经做完了,我现在给的问题完全是技术讨论
xuzuning 2013-08-22
  • 打赏
  • 举报
回复
对象数组? 你先说一下为什么要这么做 你再说一下,这样做的应用场景 总不能为类而累吧
simonlify 2013-08-22
  • 打赏
  • 举报
回复
引用 7 楼 yykr1987 的回复:
这么多菜鸟啊,zf2 中 这么多操作方式,Zend\Db\Sql,Zend\Db\TableGateway,Zend\Db\RowGateway,这么都不用啊
能说得详细一点吗,或者给出一段代码????
ahui_lcm 2013-08-21
  • 打赏
  • 举报
回复
在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;
}
IT小白菜 2013-08-13
  • 打赏
  • 举报
回复
这么多菜鸟啊,zf2 中 这么多操作方式,Zend\Db\Sql,Zend\Db\TableGateway,Zend\Db\RowGateway,这么都不用啊
simonlify 2013-08-02
  • 打赏
  • 举报
回复
大家回答很给力,但是不是我想要的答案,用框架的原因是可以在以后便于维护,扩展,而面向对象是编程的一个主要思路,如果只为实现功能,我就不会提出这个问题了,我需要的是在zend中,是否存在这样的一个库,可以将我查出来的数据转换成类的对象!继续求解。。。。
feraner 2013-08-01
  • 打赏
  • 举报
回复
这样的话,不用那么费力了,自己写个函数,把数组换成类就可以了,干什么一定要找框架里的 ,只要框架准许就可以了,
曹操的寂寞 2013-08-01
  • 打赏
  • 举报
回复
有点赞同楼上的说法 为什么要把数据赋给对象?再把对象传给页面?? 我记得获取数据库适配器之后调用query($sql)方法对数据库进行查询返回的就是一个pdo对象 你可以打印出这个对象 对象里不仅有从数据库中查询到的数据 还包含很多表信息 什么字段 宽度之类的 没什么用嘛.. 通常都是把这个对象再调用一下fetchAll()方法 转成数组 你如果实在想向页面传对象 我觉得可以这样做 你自己写好一个类 然后把fetchAll()出来的数组作为参数 传给这个类的构造方法 由构造方法给类中的成员变量赋值 这样也许是"把数据填充到对象里面"了 然后你把这个对象传给页面 但我觉得就算这样 你在view里要想输出对象 还是要对对象进行相关的处理操作 而且用了框架 怎么会没有用到model呢.. 难道要用传统的php方法操作数据库么
再看我一眼 2013-08-01
  • 打赏
  • 举报
回复
"把数据填充到对象里面"这句话我就没看懂...
再看我一眼 2013-08-01
  • 打赏
  • 举报
回复
不会... 帮顶... 咱至今对面向对象一头雾水 就算写了个类,用的时候实例化 类里边也还是差不多按照面向过程那么些的.....
simonlify 2013-08-01
  • 打赏
  • 举报
回复
各位,难道没人对这个感兴趣嘛?
源码链接: https://pan.quark.cn/s/8ddf8a1c92f9 **libcurl用于获取大型文件**libcurl作为一个开源的C语言库,提供了一系列的API来处理与URL相关的任务,涵盖了HTTP、FTP、SMTP等多种网络协议的应用。在执行大型文件的下载操作时,libcurl展现出卓越的性能表现和高度的灵活性,能够高效地管理大文件传输过程,有效预防内存溢出及其他潜在问题。**libcurl的基础操作**libcurl的基础应用包括以下几个环节:1. **初始化**:需要借助`curl_global_init()`函数来启动libcurl的工作环境。2. **建立会话句柄**:通过`curl_easy_init()`函数创建一个会话句柄,该句柄将用于后续所有的操作流程。3. **配置选项**:运用`curl_easy_setopt()`函数来设定多种参数,例如目标URL、超时时间、重试次数以及数据写入的回调函数等。4. **执行请求**:调用`curl_easy_perform()`函数来实施下载操作。5. **释放资源**:使用`curl_easy_cleanup()`函数来释放已经占用的资源。**获取大型文件时的重要设置**1. **数据写入回调函数**:在处理大型文件下载时,通常不希望一次性将整个文件载入内存。可以配置`CURLOPT_WRITEFUNCTION`选项,指定一个回调函数来处理接收到的数据片段,这样libcurl在接收到数据时会调用该函数,使得我们可以按需将数据写入文件或缓冲区。2. **缓冲策略**:可以设定缓冲区的大小(比如,通过`CURLOPT_BUFFERSIZE`),来控制每次接收数据的数量,从而优化内存...
内容概要:本文档整合了《鬼谷子·决篇》与《三略·审权变第三》《差德行第四》三大古代智慧典籍,构建了一套“决策+形势+用人”三位一体的领导力提升体系。通过28天三合实战路径、三维诊断工具、9个实用模板及独特的“身体锚点”仪式,系统解决管理者在决策犹豫、形势误判、人岗错配等方面的痛点。全文涵盖理论溯源、方法论拆解(如三步决策法、审权变四步法、差德行四步法)、历史案例对照(范蠡 vs 项羽)以及跨资源联动建议,形成从认知到实践的完整闭环。; 适合人群:中基层管理者、创业者、职场进阶者,尤其是面临决策困境、环境适应困难或团队用人问题的人群;具备一定管理经验或自我提升意识的个体亦可受益。; 使用场景及目标:① 提升重大事项的决策质量,避免反复纠结与事后后悔;② 增强对外部环境变化的敏感度与应对能力,实现灵活调整;③ 科学评估人才德才素质,实现人岗精准匹配,减少用人失误;④ 构建个人化的决策-应变-用人标准化流程(SOP)。; 阅读建议:建议按照28天路径逐步实践,结合自测表定位短板,优先突破薄弱模块;配套工具模板需实际填写使用,配合身体锚点仪式强化行为记忆;可与“诸葛亮决策术”“立将威信术”等单品联动,全面提升领导力体系。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧