小编Ere*_*ite的帖子

Zend Framework 2中的服务定位器

在控制器中,我创建并使用我的模型

public function getAlbumTable()
{
    if (!$this->albumTable) {
        $sm = $this->getServiceLocator();
        $this->albumTable = $sm->get('Album\Model\AlbumTable');
    }
    return $this->albumTable;
}
Run Code Online (Sandbox Code Playgroud)

如何在项目的其他位置使用此全局服务定位器,例如,在其他模型中,而不仅仅在任何控制器中?

С配置与数据库的连接在文件中定义:my_project/config/autoload/global.php

谢谢.

php zend-framework2

12
推荐指数
2
解决办法
2万
查看次数

Zend Framework 2:活动菜单项

从配置构建导航:

'navigation' => array(
    'default' => array(
        'admin' => array(
                'label' => 'Administration',
                'controller' => 'index',
                'action' => 'index',
                'route' => 'admin/default',
              ),
         'album' => array(
                'label' => 'Album',
                'controller' => 'index',
                'action' => 'index',
                'route' => 'album/default',
              ),
  /* ... */
Run Code Online (Sandbox Code Playgroud)

路由配置为正确.菜单中的导航工作.链接菜单指向所需模块的所需控制器/操作.但是,在引入菜单和转换到一个或另一个菜单项时,活动同时标记两个点和"管理"和"相册".据我所知,由于控制器和动作的名称与它们相匹配的原因,但仍然存在"路线"并且它不同......不是没有为每个项目生成不同的URL ...但不知何故,尽管如此这个,他们都被标记为活跃.

路由配置:

    'router' => array(
    'routes' => array(
        'admin' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/admin',
                'defaults' => array(
                    '__NAMESPACE__' => 'Admin\Controller',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),
            ),
            'may_terminate' => true, …
Run Code Online (Sandbox Code Playgroud)

php zend-framework2

7
推荐指数
1
解决办法
2355
查看次数

Zend Framework 2:子查询

ZF2最近更新到2.1.4版,数据库API已更改http://framework.zend.com/security/advisory/ZF2013-03

现在我用于子查询的代码是一个例外:

$sub = new Select('md_type');
$sub->columns(array(new Expression('COUNT(mt2.parent_id) as total')))
    ->where(array(
        new \Zend\Db\Sql\Predicate\Expression('mt2.parent_id = mt1.id')
    ))
;

$subquery = new \Zend\Db\Sql\Expression("({$sub->getSqlString()})");

$select = new \Zend\Db\Sql\Select('mt1');
$select->columns(array('*', 'cnt' => $subquery));
Run Code Online (Sandbox Code Playgroud)

$ sub-> getSqlString()------>注意:在没有扩展/驱动程序支持的情况下尝试在Zend\Db\Adapter\Platform\Mysql中引用值可能会在生产环境中引入安全漏洞.

我找不到使用子查询的替代方法.请告诉我如何使用,现在如何使用子查询.谢谢!


这是错误:https://github.com/zendframework/zf2/pull/4068

在不久的将来,我认为这是固定的.

php zend-framework2

6
推荐指数
1
解决办法
3761
查看次数

Zend Framework 2:sql子查询

在ZF1中它的工作方式如下:

 $selectColumns = array(
   '*',
   'orders_total' => "(".$db->select()->from("orders", array("COUNT(*)"))->where("orders.parent_id=mytable.id").")",
 );
 $select = $db->select()->from('mytable', $selectColumns);
Run Code Online (Sandbox Code Playgroud)

如何在ZF2中做到这一点?谢谢.

php zend-framework2

5
推荐指数
1
解决办法
6128
查看次数

Zend Framework 2:导航

在我的控制器中,我创建了Navigation对象并将其传递给视图

$navigation = new \Zend\Navigation\Navigation(array(
    array(
            'label' => 'Album',
            'controller' => 'album',
            'action' => 'index',
            'route' => 'album',
        ),
    ));
Run Code Online (Sandbox Code Playgroud)

试图使用它

<?php echo $this->navigation($this->navigation)->menu() ?>
Run Code Online (Sandbox Code Playgroud)

并得到错误:

致命错误:Zend\Navigation\Exception\DomainException:Zend\Navigation\Page\Mvc :: getHref无法执行,因为没有Zend\Mvc\Router\RouteStackInterface实例在第471行的Zend\View\Helper\Navigation\AbstractHelper.php中编写

但是我在布局中使用的导航,因此它写在这里:http://adam.lundrigan.ca/2012/07/quick-and-dirty-zf2-zend-navigation/工作.我的错是什么?

谢谢.

php zend-framework2

4
推荐指数
2
解决办法
5217
查看次数

Zend Framework 2:获取应用程序根目录的路径

如何获取应用程序根目录的路径.在Zend Framework 1中,您可以使用常量APPLICATION_PATH,我们如何在Zend Framework 2中获取它?谢谢.

php zend-framework2

3
推荐指数
1
解决办法
6767
查看次数

标签 统计

php ×6

zend-framework2 ×6