Symfony 使用复合密钥的条令请求崩溃

Symfony 使用复合密钥的条令请求崩溃,symfony,doctrine,Symfony,Doctrine,当我请求一个包含引用外键的复合主键的表时,我面临一个很大的原则问题。 我有3个实体: 图书馆(idLibrary,地址),书籍(idBook,标题,页数),容器(idLibrary,idBook,数量) 生成的所有内容都没有任何错误,但当我在容器存储库上执行findAll()请求时,我的浏览器会冻结,并且没有显示任何内容,就像卡在循环中一样(容器表中有3行) 首先,请使用法语或英语作为类名和变量 在类“Container”中添加id,并删除属性“library”和“book”的注释@ORM\id

当我请求一个包含引用外键的复合主键的表时,我面临一个很大的原则问题。 我有3个实体: 图书馆(idLibrary,地址),书籍(idBook,标题,页数),容器(idLibraryidBook,数量)

生成的所有内容都没有任何错误,但当我在容器存储库上执行findAll()请求时,我的浏览器会冻结,并且没有显示任何内容,就像卡在循环中一样(容器表中有3行)


首先,请使用法语或英语作为类名和变量

在类“Container”中添加id,并删除属性“library”和“book”的注释@ORM\id

使用ArrayCollection定义属性“authors”,并添加方法getAuthors()、addAuthor(Author$Author)、removeAuthor(Author$Author)

并将表名称重命名为name=>“name\u id”而不是“nameId”

查看文档

class Bibliotheque
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(name="name", type="string", length=60)
 */
private $name;

/**
 * @ORM\Column(name="adress", type="string", length=60)
 */
private $adress;
}
class Conteneur
{    
/**
 * Many Containers have One library.
 * @ORM\Id
 * @ORM\OneToOne(targetEntity="Bibliotheque")
 * @ORM\JoinColumn(name="libraryId", referencedColumnName="id")
 */
private $library;

/**
 * One Container has One book.
 * @ORM\Id
 * @ORM\OneToOne(targetEntity="Livre")
 * @ORM\JoinColumn(name="bookId", referencedColumnName="id")
 */
private $book;

/**
 * @ORM\Column(name="quantity", type="integer")
 */
private $quantity;
}
class Livre
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(name="title", type="string", length=255)
 */
private $title;

/**
 * @ORM\Column(name="pageCount", type="integer")
 */
private $pageCount;

/**
 * Un livre a plusieurs auteurs
 * @ORM\ManyToMany(targetEntity="Auteur")
 * @ORM\JoinTable(name="books_authors",
 *      joinColumns={@ORM\JoinColumn(name="book_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="author_id", referencedColumnName="id")}
 *      )
 */
private $authors; 
}
class Auteur
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(name="name", type="string", length=60)
 */
private $name;

/**
 * @ORM\Column(name="surname", type="string", length=60)
 */
private $prenom;

/**
 * @ORM\Column(name="birthDate", type="date")
 */
private $birthDate;
}
class Library
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
 * @var string $name
 *
 * @ORM\Column(name="name", type="string", length=60)
 */
private $name;

/**
 * @var string $address
 *
 * @ORM\Column(name="address", type="string", length=60)
 */
private $address;
}

class Container
{
/**
 * @var integer $id
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */

private $id;

/**
 * Many Containers have One library.
 *
 * @ORM\OneToOne(targetEntity="Library")
 * @ORM\JoinColumn(name="library_id", referencedColumnName="id")
 */
private $library;

/**
 * One Container has One book.
 *
 * @ORM\OneToOne(targetEntity="Book")
 * @ORM\JoinColumn(name="book_id", referencedColumnName="id")
 */
private $book;

/**
 * @ORM\Column(name="quantity", type="integer")
 */
private $quantity;
}

class Book
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string $title
 *
 * @ORM\Column(name="title", type="string", length=255)
 */
private $title;

/**
 * @var string $pageCount
 *
 * @ORM\Column(name="page_count", type="integer")
 */
private $pageCount;

/**
 * A book have many authors
 *
 * @var ArrayCollection $authors
 *
 * @ORM\ManyToMany(targetEntity="Auteur")
 * @ORM\JoinTable(name="books_authors",
 *      joinColumns={@ORM\JoinColumn(name="book_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="author_id", referencedColumnName="id")}
 *      )
 */
private $authors;

/**
 * @return ArrayCollection
 */
public function getAuthors()
{
    return $this->authors;
}

/**
 * @param Author $author
 *
 * @return $this
 */
public function addAuthor(Author $author)
{
    $this->authors->add($author);

    return $this;
}

/**
 * @param Author $author
 *
 * @return $this
 */
public function removeAuthor(Author $author)
{
    $this->authors->removeElement($author);

    return $this;
}
}

class Author
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
 * @var string $firstname
 *
 * @ORM\Column(name="firstname", type="string", length=60)
 */
private $firstname;

/**
 * @var string $lastname
 *
 * @ORM\Column(name="lastname", type="string", length=60)
 */
private $lastname;

/**
 * @var DateTime $birthDate
 *
 * @ORM\Column(name="birthDate", type="date")
 */
private $birthDate;
}