Php 使用ORM插入数据库时出错
我试图将数据插入数据库,但它显示了一些类似这样的错误 我的模型实体 Request.phpPhp 使用ORM插入数据库时出错,php,orm,doctrine-orm,Php,Orm,Doctrine Orm,我试图将数据插入数据库,但它显示了一些类似这样的错误 我的模型实体 Request.php 在这里`正如@rokas所建议的,您应该开始阅读更多关于教义的内容。这不是Mouf问题,这显然是条令ORM问题,因此相应的文件如下: 以下是一些提示: 控制器调用setdata方法 $user_data=$this->requestDao->setdata(); setdata方法调用: $product= $this->create('Keyboard','000000001ae10
在这里`正如@rokas所建议的,您应该开始阅读更多关于教义的内容。这不是Mouf问题,这显然是条令ORM问题,因此相应的文件如下:
以下是一些提示:
控制器调用setdata
方法
$user_data=$this->requestDao->setdata();
setdata
方法调用:
$product= $this->create('Keyboard','000000001ae10dda000000003c4667a6','Ergonomic and stylish!','1111');
现在,create
方法是:
public function create(...$params) : Request
{
$entity = new Request(...$params);
$this->getEntityManager()->persist($entity);
return $entity;
}
这意味着它将使用以下参数调用请求
构造函数:
$entity = new Request('Keyboard','000000001ae10dda000000003c4667a6','Ergonomic and stylish!','1111');
查看请求
构造函数:
public function __construct($salesperson, $client, $status, $qualification) {
$this->salesperson = $salesperson;
$this->client = $client;
$this->status = $status;
$this->qualification = $qualification;
}
如您所见,第一个参数是$salesperson
。您尝试在此处输入值“键盘”。$salesperson
属性的定义如下:
/**
* @ORM\ManyToMany(targetEntity="Salesperson", inversedBy="request")
* @ORM\JoinTable(name="request_salesperson")
* @var Salesperson
*/
private $salesperson;
/**
* @param Salesperson $salesperson
*/
public function setSalesperson($salesperson)
{
$this->salesperson = $salesperson;
}
现在,我想这是你的问题
$salesperson
属性被定义为“多个”关联。所以你真的不能把一个字符串放在这里,它是一个销售人员的集合。顺便说一下,你也不应该“设置”任何东西。设置器应完全拆下
相反,你应该考虑使用这里的文档:
例如:
$request->getSalesPersons()->add($someObjectRepresentingAPerson);
另外,请注意,由于$salessorn
表示salessorn对象的集合,因此您应该在请求类salessorn
中将其命名为$salessorns
(复数形式),并且状态
应该是数组集合,但您将其指定为字符串。尝试使用以下示例:$this->salesperson[]=$salesperson代码>和状态为<代码>的等等,我没有得到。。你能说清楚吗?manytomy
和OneToMany
关系总是数组集合,所以变量应该是数组(例如:)那么我应该在我的实体中更改它吗?我是这个表单中的新成员,我感到困惑是的,你的销售人员
和状态设置者应该设置数组。另外,不要忘记在构造函数中更改它。例:$this->salesperson[]=$salesperson谢谢。你救了我一周
$entity = new Request('Keyboard','000000001ae10dda000000003c4667a6','Ergonomic and stylish!','1111');
public function __construct($salesperson, $client, $status, $qualification) {
$this->salesperson = $salesperson;
$this->client = $client;
$this->status = $status;
$this->qualification = $qualification;
}
/**
* @ORM\ManyToMany(targetEntity="Salesperson", inversedBy="request")
* @ORM\JoinTable(name="request_salesperson")
* @var Salesperson
*/
private $salesperson;
/**
* @param Salesperson $salesperson
*/
public function setSalesperson($salesperson)
{
$this->salesperson = $salesperson;
}
$request->getSalesPersons()->add($someObjectRepresentingAPerson);