一.如何在Controller获取网址?
1 use Zend\View\Helper\ServerUrl;
2 $url = new ServerUrl();
3 var_dump($url->__invoke());
二.如何在Controller获取adapter?
1 $adapterOrSqlObject = $this->getServiceLocator ()->get ( 'Zend\Db\Adapter\Adapter' );
三.数据集如何转换为数组?
1 iterator_to_array($results)
四.如何在Controller获得路由参数?
1 $format = $this->getEvent()->getRouteMatch()->getParam('format');
2 $format = $this->params()->fromRoute('format');
五.如何在Controller获得GET和POST参数?
1 $request = $this->getRequest();
2 $request->getQuery('t');//get
3 $request->getPost('t');//post
六.如何获取上一次的插入ID?
1 $this->adapter->getDriver()->getConnection()->getLastGeneratedValue();
七.如何进行跳转?
1 $this->redirect ()->toRoute ( 'AdminHome/AdminController/AdminAction/AdminActionParam', array('controller' => 'seo', 'action' => 'index', 'format' => $resource->resource_id) );
八.如何调试SQL语句?
1 echo $sql->getSqlStringForSqlObject($select);
2 exit();
九.如何直接执行纯SQL语句?
1 $this->getAdapter()->query('UPDATE `'.$this->documentCountTable.'` SET `'.$action.'` = `'.$action.'` +1 WHERE `document_item_id` =?', array($documentItemId));
十.layout获得网站根目录
1 $this->basePath()
十一.模板中安全输出变量
1 $this->escapeHtml()
十二.模板中输出url
1 $this->url('authentication_admin_user', array('action' => 'delete', 'id' => $user->id));
2 $this->url('AdminHome/AdminController/AdminAction/AdminActionParam', array('controller' => 'seo', 'action' => 'index', 'format' => $resource->resource_id));
十三.模板中输出绝对url
1 echo $this->serverUrl().$this->basePath().'/';
十四.模板输出layout
01 $this->layout('admin/layout/layout');//方法1
02
03 $layoutViewModel = $this->layout();
04 $layoutViewModel->setTemplate('layout/another');//方法2
05
06 //bof
07 $headerView = new ViewModel();
08 $headerView->setTemplate('admin/index/header');//模板
09
10 $sidebarView = new ViewModel();
11 $sidebarView->setTemplate('admin/index/sidebar');//模板
12
13 $this->layout('admin/layout/layout');//layout
14 $this->layout()->addChild($headerView, 'header');
15 $this->layout()->addChild($sidebarView, 'sidebar');
16 return new ViewModel();
17 //eof
18
19 $responseView = new ViewModel();
20 // $responseView->setTerminal(true);
21
22 return $responseView;
十五.sql 复杂条件DEMO
1 use Zend\Db\Sql\Predicate\Predicate;
2
3 $predicate = new Predicate();
4 $predicate->in('字段名', array('1', '2'));
5 $select->where(array($predicate));
01 public function fetchAll() {
02 $sql = new Sql ( $this->getServiceLocator ()->get ( 'Zend\Db\Adapter\Adapter' ));
03
04 $whereArray = array ();
05 $whereArray ['r.is_seo'] = '1';
06
07 $select = $sql->select ();
08 $select->from ( array('s'=>'zjs_seo') )->columns ( array (
09 '为了避免冲突我新命名的字段' => '数据库里面的字段',
10 ) )->join ( array('r'=>'zjs_resource'), 's.resource_id = r.resource_id', array (
11 'resource',
12 ), \Zend\Db\Sql\Select::JOIN_LEFT )->where ( $whereArray );
13 $request = $this->getRequest();
14 if ($request->isPost()) {
15 $predicate = new Predicate();
16 $predicate->like('r.resource', '%'.$request->getPost('filter_resource').'%');
17 $select->where(array($predicate));
18 }
19
20 //echo $sql->getSqlStringForSqlObject($select);
21 $statement = $sql->prepareStatementForSqlObject($select);
22 $results = $statement->execute();
23
24 return $results;
25 }
十六.tableGateway join DEMO
01 public function fetchAll() {
02 $sql = new Sql ( $this->tableGateway->getAdapter () );
03
04 $whereArray = array ();
05 $whereArray ['zjs_resource.is_seo'] = '1';
06
07 $select = $sql->select ();
08 $select->from ( 'zjs_seo' )->columns ( array (
09 'seo_id',
10 'seo_tilte',
11 'seo_description'
12 ) )->join ( 'zjs_resource', 'zjs_seo.resource_id = zjs_resource.resource_id', array (
13 'resource',
14 'module'
15 ), \Zend\Db\Sql\Select::JOIN_LEFT )->where ( $whereArray );
16 $filter_resource = (isset ( $_POST ['filter_resource'] ) and ! empty ( $_POST ['filter_resource'] )) ? $_POST ['filter_resource'] : 0;
17 if ($filter_resource) {
18 $predicate = new Predicate();
19 $predicate->like('zjs_resource.resource', '%'.$filter_resource.'%');
20 $select->where(array($predicate));
21 }
22
23 //echo $sql->getSqlStringForSqlObject($select);
24 $resultSet = $this->tableGateway->selectWith ( $select );
25
26 return $resultSet;
27 }
十七.modules--连接数据库
01 <?php
02 $dbParams = array(
03 'database' => 'dbname',
04 'username' => 'root',
05 'password' => '123456',
06 'hostname' => '127.0.0.1',
07 );
08
09 return array(
10 'service_manager' => array(
11 'factories' => array(
12 'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) {
13 return new Zend\Db\Adapter\Adapter(array(
14 'driver' => 'pdo',
15 'dsn' => 'mysql:dbname='.$dbParams['database'].';host='.$dbParams['hostname'],
16 'database' => $dbParams['database'],
17 'username' => $dbParams['username'],
18 'password' => $dbParams['password'],
19 'hostname' => $dbParams['hostname'],
20 ));
21 },
22 ),
23 ),
24 );
1 use Zend\View\Helper\ServerUrl;
2 $url = new ServerUrl();
3 var_dump($url->__invoke());
二.如何在Controller获取adapter?
1 $adapterOrSqlObject = $this->getServiceLocator ()->get ( 'Zend\Db\Adapter\Adapter' );
三.数据集如何转换为数组?
1 iterator_to_array($results)
四.如何在Controller获得路由参数?
1 $format = $this->getEvent()->getRouteMatch()->getParam('format');
2 $format = $this->params()->fromRoute('format');
五.如何在Controller获得GET和POST参数?
1 $request = $this->getRequest();
2 $request->getQuery('t');//get
3 $request->getPost('t');//post
六.如何获取上一次的插入ID?
1 $this->adapter->getDriver()->getConnection()->getLastGeneratedValue();
七.如何进行跳转?
1 $this->redirect ()->toRoute ( 'AdminHome/AdminController/AdminAction/AdminActionParam', array('controller' => 'seo', 'action' => 'index', 'format' => $resource->resource_id) );
八.如何调试SQL语句?
1 echo $sql->getSqlStringForSqlObject($select);
2 exit();
九.如何直接执行纯SQL语句?
1 $this->getAdapter()->query('UPDATE `'.$this->documentCountTable.'` SET `'.$action.'` = `'.$action.'` +1 WHERE `document_item_id` =?', array($documentItemId));
十.layout获得网站根目录
1 $this->basePath()
十一.模板中安全输出变量
1 $this->escapeHtml()
十二.模板中输出url
1 $this->url('authentication_admin_user', array('action' => 'delete', 'id' => $user->id));
2 $this->url('AdminHome/AdminController/AdminAction/AdminActionParam', array('controller' => 'seo', 'action' => 'index', 'format' => $resource->resource_id));
十三.模板中输出绝对url
1 echo $this->serverUrl().$this->basePath().'/';
十四.模板输出layout
01 $this->layout('admin/layout/layout');//方法1
02
03 $layoutViewModel = $this->layout();
04 $layoutViewModel->setTemplate('layout/another');//方法2
05
06 //bof
07 $headerView = new ViewModel();
08 $headerView->setTemplate('admin/index/header');//模板
09
10 $sidebarView = new ViewModel();
11 $sidebarView->setTemplate('admin/index/sidebar');//模板
12
13 $this->layout('admin/layout/layout');//layout
14 $this->layout()->addChild($headerView, 'header');
15 $this->layout()->addChild($sidebarView, 'sidebar');
16 return new ViewModel();
17 //eof
18
19 $responseView = new ViewModel();
20 // $responseView->setTerminal(true);
21
22 return $responseView;
十五.sql 复杂条件DEMO
1 use Zend\Db\Sql\Predicate\Predicate;
2
3 $predicate = new Predicate();
4 $predicate->in('字段名', array('1', '2'));
5 $select->where(array($predicate));
01 public function fetchAll() {
02 $sql = new Sql ( $this->getServiceLocator ()->get ( 'Zend\Db\Adapter\Adapter' ));
03
04 $whereArray = array ();
05 $whereArray ['r.is_seo'] = '1';
06
07 $select = $sql->select ();
08 $select->from ( array('s'=>'zjs_seo') )->columns ( array (
09 '为了避免冲突我新命名的字段' => '数据库里面的字段',
10 ) )->join ( array('r'=>'zjs_resource'), 's.resource_id = r.resource_id', array (
11 'resource',
12 ), \Zend\Db\Sql\Select::JOIN_LEFT )->where ( $whereArray );
13 $request = $this->getRequest();
14 if ($request->isPost()) {
15 $predicate = new Predicate();
16 $predicate->like('r.resource', '%'.$request->getPost('filter_resource').'%');
17 $select->where(array($predicate));
18 }
19
20 //echo $sql->getSqlStringForSqlObject($select);
21 $statement = $sql->prepareStatementForSqlObject($select);
22 $results = $statement->execute();
23
24 return $results;
25 }
十六.tableGateway join DEMO
01 public function fetchAll() {
02 $sql = new Sql ( $this->tableGateway->getAdapter () );
03
04 $whereArray = array ();
05 $whereArray ['zjs_resource.is_seo'] = '1';
06
07 $select = $sql->select ();
08 $select->from ( 'zjs_seo' )->columns ( array (
09 'seo_id',
10 'seo_tilte',
11 'seo_description'
12 ) )->join ( 'zjs_resource', 'zjs_seo.resource_id = zjs_resource.resource_id', array (
13 'resource',
14 'module'
15 ), \Zend\Db\Sql\Select::JOIN_LEFT )->where ( $whereArray );
16 $filter_resource = (isset ( $_POST ['filter_resource'] ) and ! empty ( $_POST ['filter_resource'] )) ? $_POST ['filter_resource'] : 0;
17 if ($filter_resource) {
18 $predicate = new Predicate();
19 $predicate->like('zjs_resource.resource', '%'.$filter_resource.'%');
20 $select->where(array($predicate));
21 }
22
23 //echo $sql->getSqlStringForSqlObject($select);
24 $resultSet = $this->tableGateway->selectWith ( $select );
25
26 return $resultSet;
27 }
十七.modules--连接数据库
01 <?php
02 $dbParams = array(
03 'database' => 'dbname',
04 'username' => 'root',
05 'password' => '123456',
06 'hostname' => '127.0.0.1',
07 );
08
09 return array(
10 'service_manager' => array(
11 'factories' => array(
12 'Zend\Db\Adapter\Adapter' => function ($sm) use ($dbParams) {
13 return new Zend\Db\Adapter\Adapter(array(
14 'driver' => 'pdo',
15 'dsn' => 'mysql:dbname='.$dbParams['database'].';host='.$dbParams['hostname'],
16 'database' => $dbParams['database'],
17 'username' => $dbParams['username'],
18 'password' => $dbParams['password'],
19 'hostname' => $dbParams['hostname'],
20 ));
21 },
22 ),
23 ),
24 );