Symfony Entity一对一关系

时间:2017-08-24 21:42:04

标签: symfony doctrine entity

你能不能看一下实体之间的关系,遗憾的是一直没有正常工作。我将非常感谢你的帮助。这是1比1的关系。

用户实体

#include "types.h"

void printf(char* str)
{
    static uint16_t* VideoMemory = (uint16_t*)0xb8000;

    for(int i = 0; str[i] != '\0'; ++i)
        VideoMemory[i] = (VideoMemory[i] & 0xFF00) | str[i];
}



typedef void (*constructor)();
extern "C" constructor start_ctors;
extern "C" constructor end_ctors;
extern "C" void callConstructors()
{
    for(constructor* i = &start_ctors; i != &end_ctors; i++)
        (*i)();
}



extern "C" void kernelMain(const void* multiboot_structure, uint32_t /*multiboot_magic*/)
{
    printf("Welcome To My Operating System");

    while(1);
}

结构实体

 /**
    *
    * @ORM\Column(type="string")
    *
    * @ORM\OneToOne(targetEntity="Structure", mappedBy="user")
    */
    protected $structure;

4 个答案:

答案 0 :(得分:2)

试试这个...

/**
* @ORM\OneToOne(targetEntity="User", 
* inversedBy="structure")
*/
private $user;



 /**
 *@ORM\OneToOne(targetEntity="Structure",mappedBy="user",cascade={"persist","remove"})
 */
private $structure;

答案 1 :(得分:1)

正如@Albeis在评论中所建议的那样:

  

尝试删除双方的.as-console-wrapper { max-height: 100% !important; top: 0; } ......关系本身并非如此   有列..请注意检查   http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-to-one-bidirectional

这解决了我的问题。问题是要删除双方的@ORM \ Column。谢谢你的帮助。

答案 2 :(得分:0)

您无法将mappedBy@OneToOne一起使用。你应该在两边使用inversedBy

答案 3 :(得分:0)

    /**
    * @ORM\OneToOne(targetEntity="Core\UserBundle\Entity\Profile", mappedBy="user")
    */
    private $profile;


    /**
    * @ORM\OneToOne(targetEntity="Core\UserBundle\Entity\User", inversedBy="profile")
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id",onDelete="CASCADE")
    */
    private $user;

用户资料实体内的user_id。
如果设置onDelete =“CASCADE”,如果删除用户,mysql将自动删除配置文件。