ZendFramework2连接数据库操作实例
发布时间:2020-12-15 08:30:05 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了ZendFramework2连接数据库操作,结合完整实例形式分析了ZendFramework2连接数据库的具体步骤、配置方法、相关操作技巧与注意事项,需要的朋友可以参考下
本文实例讲述了ZendFramework2连接数据库操作。分享给大家供大家参考,具体如下: 相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐, 还是那句话,大家可以去看看源码。。。 Module.php 里面添加 array( 'StudentModelStudentTable' => function($sm) { $tableGateway = $sm->get('StudentTableGateway'); $table = new StudentTable($tableGateway); return $table; },'StudentTableGateway' => function ($sm) { $dbAdapter = $sm->get('ZendDbAdapterAdapter'); $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 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 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 调用数据库 $this->getStudentTable()->fetchAll(),//不分页 ));*/ $page=$this->params('page');//走分页 在model.config.php里面设置: /* model.config.php 'defaults' => array( 'controller' => 'StudentControllerIndex','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()); }在模板页面的调用 paginator as $student) : ?> |