Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令/符号-实体之间的冲突。试图建立关系。我犯了一个错误_Php_Symfony_Orm_Doctrine Orm_Doctrine - Fatal编程技术网

Php 条令/符号-实体之间的冲突。试图建立关系。我犯了一个错误

Php 条令/符号-实体之间的冲突。试图建立关系。我犯了一个错误,php,symfony,orm,doctrine-orm,doctrine,Php,Symfony,Orm,Doctrine Orm,Doctrine,我的实体总是有例外。我试着和他们一起玩。我在谷歌上查了一下哪个关系最适合我的实体。。。但是我找不到最好的配置 我正在制作一个网站,在那里你可以创建一个简单的帖子,在那里你可以创建一些相册 3个实体:相册/帖子/图片 在相册中我有一个图片数组,在Poste中我也有一个图片数组 一个用户可以有多个相册。 在相册实体中,我确实让用户保留了一个引用 /** * Album * * @ORM\Table(name="album") * @ORM\Entity(repositoryClass="Moodre

我的实体总是有例外。我试着和他们一起玩。我在谷歌上查了一下哪个关系最适合我的实体。。。但是我找不到最好的配置

我正在制作一个网站,在那里你可以创建一个简单的帖子,在那里你可以创建一些相册

3个实体:相册/帖子/图片

在相册中我有一个图片数组,在Poste中我也有一个图片数组

一个用户可以有多个相册。 在相册实体中,我确实让用户保留了一个引用

/**
* Album
*
* @ORM\Table(name="album")
* @ORM\Entity(repositoryClass="Moodress\Bundle\AlbumBundle\Entity\AlbumRepository")
*/

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

/** 
 ** @ORM\ManyToOne(targetEntity="Moodress\Bundle\UserBundle\Entity\User")
 ** @ORM\JoinColumn(nullable=false) 
 */
private $user;

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

/**
 * @var \DateTime
 *
 * @ORM\Column(name="creationDate", type="datetime")
 */
private $creationDate;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="modificationDate", type="datetime")
 */
private $modificationDate;

 /**
 * @ORM\OneToMany(targetEntity="Moodress\Bundle\AlbumBundle\Entity\Picture", cascade={"persist"}, mappedBy="album")
 */
 private $pictures;

/**
 * Constructor
 */
public function __construct()
{
    $this->creationDate = new \Datetime();
    $this->modificationDate = new \Datetime();
}
 // Get and set
}
当用户在网站上订阅时,我会创建一个名为Upload的默认相册,我想将它保存在用户类中

这就是我试图做的:

/**
* User
*    
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User extends BaseUser  
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
 protected $id;

/**
 * @ORM\OneToOne(targetEntity="Moodress\Bundle\AlbumBundle\Entity\Album", cascade={"persist"})
 */
 protected $albumUpload;

 // Get and set
}
带有图片数组的My Poste实体:

/**
 * Poste
 *
 * @ORM\Table(name="poste")
 * @ORM\Entity(repositoryClass="Moodress\Bundle\PosteBundle\Entity\PosteRepository")
 */
class Poste
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Moodress\Bundle\UserBundle\Entity\User")
     * @ORM\JoinColumn(nullable=true)
     */
    private $user;

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

     /**
     * @ORM\OneToMany(targetEntity="Moodress\Bundle\AlbumBundle\Entity\Picture", cascade={"persist"}, mappedBy="poste")
     */
     private $pictures;

     // Getters and setters
}
我的图片实体:

/**
 * Picture
 *
 * @ORM\Table(name="picture")
 * @ORM\Entity(repositoryClass="Moodress\Bundle\AlbumBundle\Entity\PictureRepository")
 */
class Picture
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /** 
     ** @ORM\ManyToOne(targetEntity="Moodress\Bundle\UserBundle\Entity\User")
     ** @ORM\JoinColumn(nullable=false) 
     */
    private $user;

     /**
     * @Assert\File(maxSize="6000000")
     */
    private $file;

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

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

    // Getters and setters
}
我有一个错误:
未定义索引:相册在/Users/Sandro/sites/moodress网站/Symfony/vendor/doctrine/orm/lib/doctrine/orm/Persisters/basicnitypersister.php第1608行。
当我序列化任何具有用户对象的实体时,此错误会直接出现

在日志中:

at ErrorHandler->handle('8', 'Undefined index: album', '/Users/Sandro/sites/moodress-website/Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php', 
'1608', array('assoc' => array('fieldName' => 'pictures', 'mappedBy' => 'album', 
'targetEntity' => 'Moodress\Bundle\AlbumBundle\Entity\Picture', 
'cascade' => array('persist'), 'orphanRemoval' => false, 'fetch' => '2', 
'type' => '4', 'inversedBy' => null, 'isOwningSide' => false, 'sourceEntity' => 'Moodress\Bundle\AlbumBundle\Entity\Album', 'isCascadeRemove' => false, 
'isCascadePersist' => true, 'isCascadeRefresh' => false, 'isCascadeMerge' => false, 
'isCascadeDetach' => false), 'sourceEntity' => object(Album), 'offset' => null, 
'limit' => null, 'criteria' => array())) in /Users/Sandro/sites/moodress-website/Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1608
我不知道我的实体出了什么问题。有什么帮助吗

错误:

'Undefined index: album'
来自
相册
类中此注释的结果

/**
 * @ORM\OneToMany(
 *      targetEntity="Moodress\Bundle\AlbumBundle\Entity\Picture",
 *      cascade={"persist"}, 
 *      mappedBy="album"
 *  )
 */
您已将mappedBy设置为
相册
,但在
图片
类中没有
$album
属性

/**
 * @ORM\OneToMany(
 *      targetEntity="Moodress\Bundle\AlbumBundle\Entity\Picture",
 *      cascade={"persist"}, 
 *      mappedBy="album"
 *  )
 */
将其添加到
图片
类并清除缓存

/**
 * @ORM\ManyToOne(
 *      targetEntity="Moodress\Bundle\AlbumBundle\Entity\Album",
 *      inversedBy="pictures"
 *  )
 */
protected $album;

user
表中与
albumUpload
字段相对应的列的名称是什么?列
albumUpload
字段的名称是
albumUpload\u id
。问题是我在
Album
中有
$pictures
,在
Poste
中有一个
$pictures
数组。它不会引起冲突?这不会引起任何冲突。。。为什么
Poste
Picture
没有关系。。。还有
Album
?我现在序列化时出现以下错误:
预期对象,但得到数组。您是否有错误的@Type映射,或者这可能是一种多对多关系?