Zend Expressive:我如何使用zend-form视图助手?

时间:2016-05-20 14:14:24

标签: zend-framework2 zend-form view-helpers zend-expressive

如何使用zend-form视图助手?

这样做...... How can I use zend-form view helpers?

因此,有关已弃用类的消息的消息 enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

看看这个https://github.com/zendframework/zend-expressive/issues/335

这是我工厂的样子:

config/autoload/zend-form.global.php

<强>更新

由于我不清楚,让我们再试一次。

正如您在github上的帖子中所看到的,为了删除有关已弃用类的消息,您需要创建一个包含以下内容的文件<?php use Zend\Form\ConfigProvider; $provider = new ConfigProvider(); return $provider();

$formConfig = new FormHelperConfig();
$formConfig->configureServiceManager($manager);

这样做无需从您正在创建的工厂内向服务管理器添加zend-form视图助手配置。
含义行

setServiceLocator

不再需要。

此外,不推荐使用HelperPluginManager的方法$manager = new HelperPluginManager(new Config($config)); $manager->setServiceLocator($container); ,因此您更改了这两行:

$manager = new HelperPluginManager($container, $config);

到一行:

__invoke

结果,您的public function __invoke(ContainerInterface $container) { $config = $container->has('config') ? $container->get('config') : []; $config = isset($config['view_helpers']) ? $config['view_helpers'] : []; $manager = new HelperPluginManager($container, $config); return $manager; } 函数将如下所示:

import datetime
def day_in_quarter(date):
    q2 = (datetime.datetime.strptime("4/1/{0:4d}".format(date.year), "%m/%d/%Y")).timetuple().tm_yday
    q3 = (datetime.datetime.strptime("7/1/{0:4d}".format(date.year), "%m/%d/%Y")).timetuple().tm_yday
    q4 = (datetime.datetime.strptime("10/1/{0:4d}".format(date.year), "%m/%d/%Y")).timetuple().tm_yday

    cur_day =  date.timetuple().tm_yday
    if (date.month < 4):
        return cur_day
    elif (date.month < 7):
        return cur_day - q2 + 1    
    elif (date.month < 10):
        return cur_day - q3 + 1  
    else:
        return cur_day - q4 + 1          

print day_in_quarter(datetime.datetime.strptime("5/15/2016", "%m/%d/%Y"))

您在视图模板中使用视图助手。 Here您可以找到所有zend-form视图助手的列表以及示例。

我希望这会让事情变得更清楚,因为我很难解释事情。