我决定给Sylius
写一个新功能。现在,产品有availableOn
个参数,但在某些情况下(比如出售音乐会的门票,这是在特定日期举行),availableTo
也非常有用。
所以我将变量添加到数据库
<field name="availableTo" column="available_to" type="datetime" nullable="true">
<gedmo:versioned />
</field>
还为Product
和Variant
模型添加了参数,添加到构造函数
$this->availableTo = new \DateTime();
向ProductInterace
和VariantInterface
添加了方法定义。
将标签和小部件添加到布局
{{ form_label(form.masterVariant.availableTo) }}
{{ form_widget(form.masterVariant.availableTo, {'label': false})}}
还将其添加到VariantType
构建器:
->add('availableTo', 'datetime', array(
'date_format' => 'y-M-d',
'date_widget' => 'choice',
'time_widget' => 'text',
'label' => 'sylius.form.product_variant.available_to'
))
一切正常,除非我在编辑模式下加载的值不是来自数据库(保存工作正常,所以我可以输入日期,保存,这存储在数据库中并在其他地方正确显示视图)。有一个值2010-01-01没有小时。我该怎么做才能解决它?
答案 0 :(得分:0)
此问题的解决方案是我没有在Variant.orm.xml
文件中的mapped-superclass中添加此字段
<mapped-superclass name="Sylius\Component\Product\Model\Variant" table="sylius_product_variant">
<field name="availableOn" column="available_on" type="datetime" nullable="true" />
<field name="availableTo" column="available_to" type="datetime" nullable="true" />
</mapped-superclass>