$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 属性被占用,链接指向公司属性