Php 条令将数据合并到实体类中
如果有任何新名称可用,我想更新名称。所以所有的名称都存储在变量$names中,现在当我尝试将数据合并到实体中时,它总是返回一个错误-- 注意:数组到字符串的转换 我做错了什么,谁能帮我解决这个问题Php 条令将数据合并到实体类中,php,symfony,doctrine,Php,Symfony,Doctrine,如果有任何新名称可用,我想更新名称。所以所有的名称都存储在变量$names中,现在当我尝试将数据合并到实体中时,它总是返回一个错误-- 注意:数组到字符串的转换 我做错了什么,谁能帮我解决这个问题 $names = Array ( [0] => 11.se [1] => 22.se [2] => aa.se [4] => all.se [31] => allb.se [55] => ggg.com [56] => kkk.se [57] => ll
$names = Array ( [0] => 11.se [1] => 22.se [2] => aa.se [4] => all.se [31] => allb.se [55] => ggg.com [56] => kkk.se [57] => lll.se [58] => mmm.se [60] => qqq.se [88] => zzz.se [89] ...
$data = new MyNames(); // Entity class
$data->setName($names); // set the names
$em->merge($data); // merge the new names
$em->flush();
实体类myclass-
/**
* MyNames
*
* @ORM\Table()
* @ORM\Entity
*/
class MyNames
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
属性$name包含单个名称还是多个名称?如果只包含一个名称,则该类可能应重命名为MyName
如果$name只有一个名称,则可以执行以下操作:
foreach ($names as $name) {
$data = new MyNames();
$data->setName($name;
$em->merge($data);
}
$em->flush();
作为答案发布,因为评论太长:
如果$name包含数组中的所有名称,则可以执行以下操作:
$data->setName(implode(',', $data));
你没有提供太多的信息,所以可能在某个地方有陷阱。我假设这个类只是一个简化的例子。因为这没什么意义。也许您可以提供一个上下文,例如名称的用途、类中的其他数据。这将非常有助于给出更好的答案。可能setName$name需要字符串,而不是字符串数组。您可以对数组进行foreach或更改实体,例如创建setNamesarray$names。您可能应该用MyNames类的源代码来展开您的问题