$form = $this->createFormBuilder($project)
->add('name', TextType::class, [
'attr' => [
'placeholder' => 'Название проекта'
]
])
->add('companyId', EntityType::class, [
'class' => 'AppBundle:Company',
'choice_label' => 'name',
])
这是一份表格。SQLSTATE[23000]:违反完整性约束:1048 表单提交时列“company_id”不能为空。请向新手解释我愚蠢的地方。下面是表单提交调试
对象(stdClass)#421(10){
["__CLASS__"]=>
string(24) "AppBundle\Entity\Project"
[“身份证”]=>
无效的
[“姓名”]=>
字符串(3)“自卫队”
["companyId"]=>
对象(stdClass)#569(7){
["__CLASS__"]=>
string(24) "AppBundle\Entity\Company"
[“身份证”]=>
整数(3)
[“姓名”]=>
string(18) "公司 2"
[“创建于”]=>
string(8) "日期时间"
[“更新时间”]=>
string(8) "日期时间"
[“项目”]=>
字符串(8)“数组(1)”
[“交易”]=>
字符串(8)“数组(0)”
}
[“价格”]=>
浮动(23)
[“成本”]=>
浮动(23)
[“创建于”]=>
无效的
[“更新时间”]=>
无效的
[“公司”]=>
无效的
[“交易”]=>
阵列(0){
}
}
这是我要写入的表。
创建表`项目`( `id` int(11) 不为空, `name` varchar(255) NOT NULL, `company_id` int(11) NOT NULL, `price` decimal(14,2) NOT NULL, `cost` decimal(14,2) NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL ) 引擎=InnoDB 默认字符集=utf8mb4;
谢谢丹尼尔。答案很简单。companyId 属性被占用,链接指向公司属性