【发布时间】:2017-06-25 16:37:11
【问题描述】:
在我的 Symfony 项目中,我一直在用原则坚持小数时遇到问题。
我有一个“Proyectos”实体,变量中有一个价格,所有变量都毫无问题地发送到查询,但价格(这是一个小数)在查询中显示为空,因为在我的 SQL 表中价格不能为null,就会出现错误。
问题出现在查询生成之间,因为在表单中,“precio”以十进制形式发送。
我已经尝试将实体中的变量更改为数字类型,但没有成功。
实体:
/**
* @var decimal
*
* @ORM\Column(name="precio", type="decimal", precision=10, scale=2)
*/
private $precio;
在表格中,字段“precio”是小数(10,2)
控制器:
$formBuilder = $this->get('form.factory')->createBuilder(FormType::class, $project);
$formBuilder
->add('titulo', TextType::class)
->add('thumbdesc', TextType::class)
->add('descripcion', TextareaType::class)
->add('img', TextType::class)
->add('thumbimg', TextType::class)
->add('precio', NumberType::class, array('scale' => 2))
->add('crear', SubmitType::class);
$form = $formBuilder->getForm();
if ($request->isMethod('POST')) {
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($project);
$em->flush();
$request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.');
return $this->redirectToRoute('sofimar_inversiones_view', array('id' => $project->getId()));
}
}
错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'precio' cannot be null
在教义和 symfony 变量类型之间一定有一些混淆,但我就是找不到错误。
完全错误:
An exception occurred while executing
'INSERT INTO proyectos (titulo, descripcion, thumbdesc, thumbimg, img, precio, fecha)
VALUES (?, ?, ?, ?, ?, ?, ?)'
with params ["title", "description", "desc", "image", "img", null, "2017-06-25 16:39:48"]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'precio' cannot be null
并发布参数:
[titulo => title,
thumbdesc => desc,
descripcion => description,
img => img, thumbimg => image,
precio => 12.36, crear => ,
_token => qNaO1AD3BpqSOuTW2vdQz5pX4A4Pk2S3QNv6ZEhZmzo]
【问题讨论】:
标签: php mysql symfony doctrine