ZendFramework2连接数据库操作实例
发布时间:2020-12-12 22:06:06 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解ZendFramework2连接数据库操作。供大家参考研究具体如下: 相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐, 还是那
本篇章节讲解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) : ?>
更多关于zend相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》 希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |