如何地图YAML OneToOne关系

问题描述 投票:0回答:2

我试图创建一个使用YAML两个表之间的关系OneToOne。我不知道他们应该如何进行通信。

class Games
{

    private $id;


    private $title;


    private $description;


    private $img_link;


    private $website_link;


    private $pegi;


    private $release_date;

    private $requirements;
}

App\Entity\Games:
  type: entity
  repositoryClass: App\Repository\GamesRepository
  table: games
  id:
    id:
      type: integer
      generator:
        strategy: AUTO
  fields:
    title:
      type: string
      length: 255
      nullable: true
    description:
      type: text
      nullable: true
    img_link:
      type: text
      nullable: true
    website_link:
      type: text
      nullable: true
    pegi:
      type: integer
      nullable: true
    release_date:
      type: date
      nullable: true
  OneToOne:
    requirements:
      targetEntity: App\Entity\Requirements
      joinColumn:
        name: requirements_fk
        referencedColumnName: id

class Requirements
{
    private $id;

    private $os_min;

    private $cpu_min;

    private $ram_min;

    private $hdd_min;

    private $gpu_min;

    private $directx_min;

    private $os_req;

    private $cpu_req;

    private $ram_req;

    private $hdd_req;

    private $gpu_req;

    private $directx_req;
}

App\Entity\Requirements:
  type: entity
  repositoryClass: App\Repository\RequirementsRepository
  table: requirements
  id:
    id:
      type: integer
      generator:
        strategy: AUTO
  fields:
    os_min:
      type: string
      length: 255
      nullable: true
    cpu_min:
      type: string
      length: 255
      nullable: true
    ram_min:
      type: integer
      nullable: true
    hdd_min:
      type: integer
      nullable: true
    gpu_min:
      type: string
      lenght: 255
      nullable: true
    directx_min:
      type: integer
      nullable: true
    os_req:
      type: string
      length: 255
      nullable: true
    cpu_req:
      type: string
      length: 255
      nullable: true
    ram_req:
      type: integer
      nullable: true
    hdd_req:
      type: integer
      nullable: true
    gpu_req:
      type: string
      lenght: 255
      nullable: true
    directx_req:
      type: integer
      nullable: true

我试着查询像这样,但它始终返回null即使它应该返回一个条目。

$temp = $this->getDoctrine()->getRepository(Games::class)->find($id);
$requirements = $temp->getRequirements();

我没有得到任何错误,所以,这真的很难去尝试和调试。 Acording到文档看起来还好。所以,不知道问题出在哪里。

symfony doctrine-orm
2个回答
0
投票

如果class Games是你的实体,你应该有方法getRequirements()在那里。尝试基于该架构的实体,如果你的实体是空的。

https://symfony.com/doc/current/doctrine/reverse_engineering.html


0
投票

关键的问题是,OneToOne!= oneToOne在YAML。

© www.soinside.com 2019 - 2024. All rights reserved.