本文实例讲述了ZendFramework2连接数据库操作。分享给大家供大家参考,具体如下:
相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐,
还是那句话,大家可以去看看源码。。。
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
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
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' => '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;">
paginator as $student) : ?>
escapeHtml($student->id);?>escapeHtml($student->name);?>escapeHtml($student->phone);?>escapeHtml($student->email);?>PHP的别名
escapeHtml($student->mark);?>
更多关于zend相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。
原文链接:https://www.f2er.com/php/17610.html