我有一个布尔字段,我把它作为一个选择字段放在一个表单中(是或否).没有数据转换器,我会得到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,无论我选择什么值.
怎么了?
我的 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,参数没有被替换。我缺少什么?
谢谢!
我已经创建了自己的数据转换器,正如专门的食谱中所解释的,这是我的逆向转换:
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)
问题是:如何获取"自定义错误消息"?我想将它显示为我的表单字段的错误消息.我怎么做?
谢谢!
使用修补的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,但似乎我必须编译它...
symfony ×3
angularjs ×1
data-binding ×1
datetime ×1
forms ×1
symfony-2.3 ×1
translation ×1
wkhtmltopdf ×1