我试图创建一个使用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到文档看起来还好。所以,不知道问题出在哪里。
如果class Games
是你的实体,你应该有方法getRequirements()
在那里。尝试基于该架构的实体,如果你的实体是空的。
https://symfony.com/doc/current/doctrine/reverse_engineering.html
关键的问题是,OneToOne!= oneToOne在YAML。