本文实例讲述了ZendFramework2连接数据库操作。分享给大家供大家参考,具体如下:
相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐,
还是那句话,大家可以去看看源码。。。
Module.php 里面添加
html' target='_blank'>public function getServiceConfig() return array( factories = array( Student/Model/StudentTable = function($sm) { $tableGateway = $sm- get( StudentTableGateway $table = new StudentTable($tableGateway); return $table; StudentTableGateway = function ($sm) { $dbAdapter = $sm- get( Zend/Db/Adapter/Adapter $resultSetPrototype = new ResultSet(); $resultSetPrototype- setArrayObjectPrototype(new Student()); return new TableGateway( cc_user , $dbAdapter, null, $resultSetPrototype);//table Name is cc_user}
student.php 这个是Model/Student.php
namespace Student/Model;class Student public $id; public $name; public $phone; public $mark; public $email; public function exchangeArray($data)//别名 $this- id = (!empty($data[ cc_u_id ])) ? $data[ cc_u_id ] : null; $this- name = (!empty($data[ cc_u_name ])) ? $data[ cc_u_name ] : null; $this- phone = (!empty($data[ cc_u_phone ])) ? $data[ cc_u_phone ] : null; $this- mark = (!empty($data[ cc_u_mark ])) ? $data[ cc_u_mark ] : null; $this- email = (!empty($data[ cc_u_email ])) ? $data[ cc_u_email ] : null;}
StudentTable.php Model/StudentTable.php
?phpnamespace Student/Model;use Zend/Db/ResultSet/ResultSet;use Zend/Db/TableGateway/TableGateway;use Zend/Db/Sql/Select;use Zend/Paginator/Adapter/DbSelect;use Zend/Paginator/Paginator;class StudentTable protected $tableGateway; protected $table= cc_user public function __construct(TableGateway $tableGateway) $this- tableGateway = $tableGateway; public function fetchAll($paginated) {//分页 if($paginated) { // create a new Select object for the table album $select = new Select( cc_user // create a new result set based on the Student entity $resultSetPrototype = new ResultSet(); $resultSetPrototype- setArrayObjectPrototype(new Student()); // create a new pagination adapter object $paginatorAdapter = new DbSelect( // our configured select object $select, // the adapter to run it against $this- tableGateway- getAdapter(), // the result set to hydrate $resultSetPrototype $paginator = new Paginator($paginatorAdapter); return $paginator; $resultSet = $this- tableGateway- select(); return $resultSet; public function getStudent($id) $id = (int) $id; $rowset = $this- tableGateway- select(array( id = $id)); $row = $rowset- current(); if (!$row) { throw new /Exception( Could not find row $id return $row; public function deleteStudent($id) $this- tableGateway- delete(array( id = $id)); public function getLIValue(){ return $this- tableGateway- getLastInsertValue();}
Student/IndexController.php 调用数据库
public function indexAction(){ /* return new ViewModel(array( students = $this- getStudentTable()- fetchAll(), //不分页 ));*/ $page=$this- params( page //走分页 在model.config.php里面设置:/* model.config.php defaults = array( controller = Student/Controller/Index , action = index , page = 1 , $paginator = $this- getStudentTable()- fetchAll(true); // set the current page to what has been passed in query string, or to 1 if none set $paginator- setCurrentPageNumber((int)$this- params()- fromQuery( page , $page)); // set the number of items per page to 10 $paginator- setItemCountPerPage(10); return new ViewModel(array( paginator = $paginator //模板页面调用的时候的名字 //print_r($this- getStudentTable()- fetchAll());}
在模板页面的调用
?php foreach ($this- paginator as $student) : ? tr id= ?php echo $this- escapeHtml($student- ? td ?php echo $this- escapeHtml($student- ? /td td ?php echo $this- escapeHtml($student- name);? /td td ?php echo $this- escapeHtml($student- phone);? /td td ?php echo $this- escapeHtml($student- email);? /td //应用了在Student.php的别名 td ?php echo $this- escapeHtml($student- mark);? /td td a href= # >以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !
相关推荐:
Zend Framework中Bootstrap类的用法解析
Yii2框架实现数据库常用操作解析
关于Zend Framework如何实现将session存储在memcache中
以上就是关于ZendFramework2连接数据库的操作的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答