小编Ild*_*dar的帖子

如何使用Zend\Form\Factory在ZF2字段集中设置过滤器和验证器?

我使用Zend\Form\Factory在zend framework2中创建表单

$factory = new Zend\Form\Factory();
$factory->createForm(array(
    'elements' => array(
        array(
            'spec' => array(
                'name' => 'name',
            ),
        ),
    ),
    'input_filter' => array(
        'name' => array(
            'validators' => array(
                // validators for field "name"
            ),
            'filters' => array(
                // filters for field "name"
            ),
        ),
    ),
));
Run Code Online (Sandbox Code Playgroud)

您可以看到字段"name"有过滤器和验证器.有用.如果我使用fieldsets我有问题:

$factory->createForm(array(
    'fieldsets' => array(
        array(
            'spec' => array(
                'name' => 'common',
                'elements' => array(
                    array(
                        'spec' => array(
                            'name' => 'name',
                        ),
                    ),
                ),
            ),
        ),
    ),   
    'input_filter' => array(
        'name' => …
Run Code Online (Sandbox Code Playgroud)

php zend-framework2

11
推荐指数
1
解决办法
1万
查看次数

我可以渲染视图而不在zend框架2中的动作控制器中返回它吗?

现在我这样做:

public function indexAction() {
    ...
    $view = new ViewModel(array(
        'foo' => 'bar',
    ));
    return $view;
}
Run Code Online (Sandbox Code Playgroud)

问题是我想在$ view渲染之后和布局渲染之前做一些事情:

public function indexAction() {
    ...
    $view = new ViewModel(array(
        'foo' => 'bar',
    ));
    $layout = $this->layout();

    $layout->content = $view->render();
    ...
    // here I want to do some important action
    ...
    $html = $layout->render();
    return $this->getResponse()->setContent($html);    
}
Run Code Online (Sandbox Code Playgroud)

但是没有方法render().在ZF1中,我可以呈现视图:

$view = new Zend_View($data);
$html = $view->render($templateName);
Run Code Online (Sandbox Code Playgroud)

我怎么能在ZF2中做到这一点?

php zend-framework2

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

ZF2如何在表单fieldset中包装内容?

我有字段集的表单:

$formConfig = array(
    'fieldsets' => array(
        ...
    );
);

$factory = new Zend\Form\Factory();
$form = $factory->createForm($formConfig); 
echo $this->form($form);
Run Code Online (Sandbox Code Playgroud)

它呈现如下:

<form>
    <fieldset>
        <legend>Fieldset label</legend>
        <label><span>Elem 1</span><input type="text" name="f1[el1]" /></label>
        <label><span>Elem 2</span><input type="text" name="f1[el2]" /></label>
        <label><span>Elem 3</span><input type="text" name="f1[el3]" /></label>
    </fielset>
</form>
Run Code Online (Sandbox Code Playgroud)

问题是我需要在传奇之后包装内容:

<form>
    <fieldset>
        <legend>Fieldset label</legend>
        <div class="wrapper">
            <label><span>Elem 1</span><input type="text" name="f1[el1]" /></label>
            <label><span>Elem 2</span><input type="text" name="f1[el2]" /></label>
            <label><span>Elem 3</span><input type="text" name="f1[el3]" /></label>
        <div>
    </fielset>
</form>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

php zend-framework2

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

如何从ZF2模块中的Route获取参数?(类Module,函数onBootstrap())

在控制器中我可以从路径中获取参数$this->params()->fromRoute('param1')
如何在Module OnBootstrap()函数中执行此操作?

namespace MyModule;

use Zend\EventManager\EventInterface;

class Module
{
    public function onBootstrap(EventInterface $event)
    {
        // here I need to get parameter from route
    }
}
Run Code Online (Sandbox Code Playgroud)

zend-framework2

2
推荐指数
1
解决办法
5506
查看次数

如何在php中压缩html输出?

可能的重复:
如何缩小 php 页面 html 输出?

我的意思是去除 html 中的所有换行符和空格并将其放在一行上。

我试过这个功能

public static function htmlCompress($html)
{
    preg_match_all('!(<(?:code|pre|script).*>[^<]+</(?:code|pre|script)>)!',$html,$pre);
    $html = preg_replace('!<(?:code|pre).*>[^<]+</(?:code|pre)>!', '#pre#', $html);
    $html = preg_replace('#<!–[^\[].+–>#', '', $html);
    $html = preg_replace('/[\r\n\t]+/', ' ', $html);
    $html = preg_replace('/>[\s]+</', '><', $html);
    $html = preg_replace('/[\s]+/', ' ', $html);
    if (!empty($pre[0])) {
        foreach ($pre[0] as $tag) {
            $html = preg_replace('!#pre#!', $tag, $html,1);
        }
    }
    return $html;
}
Run Code Online (Sandbox Code Playgroud)

但有时会出现像“?”这样的符号 因为这个字符串

$html = preg_replace('/[\s]+/', ' ', $html);
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个符号以及如何压缩html?

html php compression

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

标签 统计

php ×4

zend-framework2 ×4

compression ×1

html ×1