小编Dam*_*ian的帖子

如何访问一对一的嵌入式表单symfony2

我只用了几天symfony 2.我有两个实体,我想创建一个表单并将此表单中的数据保存到数据库中.UserDetails和Contract有关系OneToOne.我将一种形式的契约嵌入到UserDetails表单中(在web上形成apper),但是当我将一些数据设置为表单并单击"保存"按钮时,我收到错误.因为我注意到"尝试"分配数组而不是合同我不知道如何在Controler中访问这个新合同.

示例错误:

ContextErrorException:Catchable Fatal Error:传递给Leave\DatabaseBundle\Entity\UserDetails :: setContract()的参数1必须是Leave/DatabaseBundle\Entity\Contract的实例,给定的数组,在/ var/www/nowyUrlop/vendor/symfony中调用第360行的/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php,在/var/www/nowyUrlop/src/Leave/DatabaseBundle/Entity/UserDetails.php第165行中定义

在UserDetails-> setContract(array('start_contr'=> object(DateTime),'end_contr'=> object(DateTime),'hours_per_week'=>'6'))/ var/www/nowyUrlop/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php第360行

UserDetails实体:

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Annotations\AnnotationReader;
use Leave\DatabaseBundle\Entity\User;

/**
 * @ORM\Entity
 * @ORM\Table(name="userDetails")
 */
class UserDetails {

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\OneToOne(targetEntity="Contract", mappedBy="user_details", cascade={"persist"})
 */
protected $contract;

/**
 * @ORM\OneToOne(targetEntity="User", inversedBy="userDetails")
 * @ORM\JoinColumn(name="user_id", nullable = true, referencedColumnName="id")
 * */
protected $user;
Run Code Online (Sandbox Code Playgroud)

合同实体:

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="contract")
 */
class …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm

6
推荐指数
1
解决办法
7417
查看次数

标签 统计

doctrine-orm ×1

symfony ×1