【发布时间】:2014-08-08 09:26:55
【问题描述】:
我在创建新用户时遇到了一些奇怪的错误。
Catchable Fatal Error: Object of class Pr\UserBundle\Entity\Group could not be converted to string in /var/www/symfony/webprojekt/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php line 120
发生这种情况是因为我不想为一个用户分配多个用户组(例如 ROLE_USER),所以我将选项“用户组”更改为单个选择。
我在下面添加了用户和组的实体,但我没有看到任何问题 - 我又卡住了:(
/**
* @ORM\Entity
* @ORM\Table(name="sys_user")
*/
class User extends BaseUser
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=8, nullable=true)
*/
protected $mobilepin;
/**
* @ORM\Column(type="integer", nullable=true)
*/
protected $client;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $client_id;
/**
* @ORM\Column(type="string", length=16383, nullable=true) //16383 = max varchar utf8
*/
private $imageurl;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $firstname;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $lastname;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $emailalert;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $phone;
/**
* @ORM\Column(type="integer", nullable = true)
*/
protected $lock_state;
/**
* @ORM\Column(type="array", nullable=true)
* @Assert\NotBlank()(message="Check locations")
*/
private $locations;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $usergroups;
/**
* @ORM\Column(type="string", length=5, options={"fixed" = true, "default" = "de_DE"})
*/
private $locale = 'de_DE';
/**
* @ORM\Column(type="string", length=32)
*/
private $timezone = 'UTC';
/**
* @ORM\Column(type="array", nullable=true)
*/
private $created='1';
还有我组的那个
/**
* @ORM\Entity
* @ORM\Table(name="user_group")
*/
class Group
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $name;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
protected $roles;
至少我是如何创建选择的:
->add('usergroups', 'entity', array('class' => 'PrUserBundle:Group','property' => 'name','required' => true, 'empty_value' => 'Benutzergruppe','multiple' => false, 'expanded' => false))
这很奇怪:(
编辑:如果我从
更改“用户组” * @ORM\Column(type="string", length=255, nullable=true)
到
* @ORM\Column(type="array", nullable=true)
它工作正常。但是,保存数据看起来像
O:26:"Pr\UserBundle\Entity\Group":3:{s:5:"
这看起来很奇怪和错误。我想过保存分配组的ID
【问题讨论】:
标签: arrays string symfony object entity