我注意到,即使我们没有在.yml文件中指定表的一些必需字段,推进器也会将夹具数据加载到数据库中。
这背后的原因是什么?更容易开发等?
架构:
jobeet_job:
id: ~
category_id: { type: integer, foreignTable: jobeet_category, foreignReference: id, required: true }
type: { type: varchar(255) }
company: { type: varchar(255), required: true }
logo: { type: varchar(255) }
url: { type: varchar(255) }
position: { type: varchar(255), required: true }
location: { type: varchar(255), required: true }
description: { type: longvarchar(255), required: true }
how_to_apply: { type: longvarchar(255), required: true }
token: { type: varchar(255), required: true, index: unique }
is_public: { type: boolean, required: true, default: 1 }
is_activated: { type: boolean, required: true, default: 0 }
email: { type: varchar(255), required: true }
expires_at: { type: timestamp, required: true }
created_at: ~
updated_at: ~
因此,expires_at是必需的:true。
数据:
expired_job:
category_id: design
company: Extreme sensio
position: Web Designer
location: Paris, France
description: |
Lorem ipsum dolor sit amet.
how_to_apply: |
Send your resume to fabien.potencier at sensio.com.
is_public: true
is_activated: true
token: job_expired
因此,没有设置expires_at字段。
然而我能够运行
symfony propel:数据加载任务。
答案 0 :(得分:1)
此链接http://dev.mysql.com/doc/refman/5.0/en/timestamp.html解释了MySQL中TIMESTAMP类型的默认值(假设您使用的是MySQL)。
答案 1 :(得分:1)
在你的另一个问题中,你引用了JobeetJob类的save方法。你可以在那里看到expires_at
被设置在那里,除非之前手动设置 - 因此填写必填字段,所以一切都很好。