小编Nan*_*com的帖子

Symfony2表单BooleanToStringTransformer问题

我有一个布尔字段,我把它作为一个选择字段放在一个表单中(是或否).没有数据转换器,我会得到0或1.我添加了一个视图BooleanToStringTransformer(看起来合理):

$builder
        ->add(
            $builder->create('myBooleanField', 'choice', array(
                'choices' => array(true => 'Yes', false => 'No'),
            ))
            ->addViewTransformer(new BooleanToStringTransformer('1'))
        )
Run Code Online (Sandbox Code Playgroud)

当我尝试显示表单时,我收到错误"Expected a Boolean.".在创建表单之前,我的字段设置为false.

我试图将它设置为模型转换器:表单被调度,但是当我提交它时,我的字段被声明为无效.

我究竟做错了什么?

编辑:我差不多了.

  • 我使用模型变换器而不是视图变换器(选择字段使用字符串或整数,而不是布尔值)
  • 我将选择列表从更改array(true => 'Yes', false => 'No')array('yes' => 'Yes', 'no' => 'No')

所以代码现在看起来像 ->addModelTransformer(new BooleanToStringTransformer('yes'))

数据转换工作,除了我的字段始终设置为true,无论我选择什么值.

怎么了?

forms symfony-forms symfony symfony-2.3

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

Symfony2 翻译,参数不起作用

我的 Symfony2 翻译器有问题。

我有一个 DateTimeFormatter 类(此处简化):

<?php

namespace Project\CommonBundle\Util;

use DateTime;
use Symfony\Component\Translation\TranslatorInterface;

class DateTimeFormatter
{
    private $translator;

    public function __construct(TranslatorInterface $translator)
    {
        $this->translator = $translator;
    }

    public function format(DateTime $datetime, array $options = array())
    {
        $delta = time() - $datetime->getTimestamp();

        return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%', $delta);
    }
}
Run Code Online (Sandbox Code Playgroud)

带翻译文件:

datetime_formatter:
    seconds_ago: %seconds% seconds ago
Run Code Online (Sandbox Code Playgroud)

我将其配置为服务:

parameters:
    datetime_formatter.class: Skepin\CommonBundle\Util\DateTimeFormatter
services:
    common.util.datetime_formatter:
            class: %datetime_formatter.class%
            arguments: [@translator]
Run Code Online (Sandbox Code Playgroud)

问题是:当我使用它时,显示的文本是%seconds% seconds ago,参数没有被替换。我缺少什么?

谢谢!

datetime translation symfony

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

Symfony2数据转换器,获取异常消息

我已经创建了自己的数据转换器,正如专门的食谱中所解释,这是我的逆向转换:

public function reverseTransform($val)
{
    // ...
    // My logic here
    // ...

    // If $val is not valid
    throw new TransformationFailedException(
        'My custom error message'
    );
}
Run Code Online (Sandbox Code Playgroud)

问题是:如何获取"自定义错误消息"?我想将它显示为我的表单字段的错误消息.我怎么做?

谢谢!

data-binding symfony-forms symfony

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

Wkhtmltopdf修补了angularjs的QT问题

使用修补的Qt运行任何版本的wkhtmltopdf时出现此JavaScript错误:

Warning: undefined:0 Error: [$injector:modulerr] Failed to instantiate module ng due to:
'undefined' is not an object
http://errors.angularjs.org/1.5.7/$injector/modulerrp0=ng&p1='undefined'%20is%20not%20an%20object
Run Code Online (Sandbox Code Playgroud)

(我正在尝试使用angularjs 1.5渲染页面).

当我使用wkhtmltopdf的版本没有修补Qt我没有得到错误,一切正常.

我使用这个heroku buildpack,用修补的Qt安装版本0.12.3,我收到了这个错误.

知道怎么解决我的问题吗?我可能会在没有修补Qt的情况下安装wkhtmltopdf,但似乎我必须编译它...

wkhtmltopdf angularjs

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