我是PHP的新手,如果这是一个简单的问题,请道歉。请问您能告诉我如何在PHP中自动选择日期下拉(使用3个下拉 - 日/月/年)。这就是我的PHP代码:
$s = '01/08/2014 11:00:02';
$date = strtotime($s);
$objectToParse->setDateReceived(date('d/M/Y H:i:s', $date));
$form = $this->createForm(new Type(), $objectToParse);
然后表单看起来像:
class Type extends AbstractType {
public function buildForm(FormBuilderInterface $builder)
{
$builder->add('dateReceived', 'date', array(
'required' => false
))
}
}
我期待\DateTime
。但此刻我刚收到一个
500内部服务器错误 - TransformationFailedException错误
答案 0 :(得分:0)
在您的班级类型上,添加如下内容:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\AcmeBundle\Entity\MyObject',
));
}
它在给定实体(MyObject)和表单之间进行绑定。
每个表单都需要知道包含该类的类的名称 基础数据(例如Acme \ TaskBundle \ Entity \ Task)。通常,这是 只是猜测基于传递给第二个参数的对象 createForm(即$ task)。后来,当你开始嵌入表格时,这个 将不再足够。因此,虽然并非总是必要,但它是 通常最好明确指定data_class选项
此外,您需要为setter setDateReceived
提供DateTime。您使用date
函数提供的是一个字符串。
您需要做的是:
$s = '01/08/2014 11:00:02';
$date = \DateTime::createFromFormat('d/M/Y H:i:s', $s);
$objectToParse->setDateReceived($date);