Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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 我不能使JoinColumn为空_Php_Symfony_Doctrine - Fatal编程技术网

Php 我不能使JoinColumn为空

Php 我不能使JoinColumn为空,php,symfony,doctrine,Php,Symfony,Doctrine,我试图在一个符号/条令实体中创建多对零或一个链接。我认为以下几点应该可以奏效: /** * @var integer * * @ORM\Column(name="vragenlijst_id") * @ORM\ManyToOne(targetEntity="GroNed\AdminBundle\Entity\WalkthroughType") * @ORM\JoinColumn(name="vragenlijst_id", referencedColumnName="id",

我试图在一个符号/条令实体中创建多对零或一个链接。我认为以下几点应该可以奏效:

    /**
 * @var integer
 *
 * @ORM\Column(name="vragenlijst_id")
 * @ORM\ManyToOne(targetEntity="GroNed\AdminBundle\Entity\WalkthroughType")
 * @ORM\JoinColumn(name="vragenlijst_id", referencedColumnName="id", nullable=true)
 */
private $vragenlijst;
然而:理论似乎与我不一致:

[bhillier@devserver-2 Symfony]$ php app/console doctrine:schema:update --dump-sql
ALTER TABLE walkthrough CHANGE vragenlijst_id vragenlijst_id INT NOT NULL;
我可能错过了一些愚蠢的事情,但我现在看不出是什么。有人有什么想法吗

如果有帮助:

[bhillier@devserver-2 Symfony]$ /usr/local/apache2/bin/apachectl -version
Server version: Apache/2.4.18 (Unix)
Server built:   Jan 26 2016 06:31:19
[bhillier@devserver-2 Symfony]$ /opt/php-5.6/bin/php --version
PHP 5.6.17 (cli) (built: Jan 26 2016 05:36:55)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
[bhillier@devserver-2 Symfony]$ php app/console --version
Symfony version 2.6.13 - app/dev/debug

您将需要删除@var和@ORM\Column注释,它们在使用关联时不是必需的。

您将需要删除@var和@ORM\Column注释,它们在使用关联时不是必需的。

根据您的注释,您告诉Doctrine创建一个名为vragenlijst_id的列,但没有说明它的可空属性。您正在使用注释执行此操作:

 @ORM\Column(name="vragenlijst_id")
正确的注释是:

  /**
    * @var integer
    *
    * @ORM\ManyToOne(targetEntity="GroNed\AdminBundle\Entity\WalkthroughType")
    */
   private $vragenlijst;

根据您的注释,您正在告诉Doctrine创建一个名为vragenlijst_id的列,但没有说明它的null属性。您正在使用注释执行此操作:

 @ORM\Column(name="vragenlijst_id")
正确的注释是:

  /**
    * @var integer
    *
    * @ORM\ManyToOne(targetEntity="GroNed\AdminBundle\Entity\WalkthroughType")
    */
   private $vragenlijst;

通常情况下,人们会错误地使用引号nullable=true,但我发现这里的情况并非如此。。。您不需要@var或@ORM\Column,所以请将它们转储,看看是否有帮助?谢谢@Egg。实际上,@ORM\Column覆盖了@JoinColumn,导致了我所有的问题!别忘了允许setter也接受null:setVragenlijst$vragenlijst=null欢迎@BenHillier;我重复了这一点,作为一个帖子的答案,以帮助将来来到这里的其他人。通常情况下,这是当人们错误地使用引号nullable=true时,但我发现这里的情况并非如此。。。您不需要@var或@ORM\Column,所以请将它们转储,看看是否有帮助?谢谢@Egg。实际上,@ORM\Column覆盖了@JoinColumn,导致了我所有的问题!别忘了允许setter也接受null:setVragenlijst$vragenlijst=null欢迎@BenHillier;我重复了这一点作为一个张贴的答案,以帮助任何其他人在未来来到这里。嗨奥斯卡!你和Egg的答案都是正确的,但是@Egg在他的评论中已经让我走上了正确的轨道,所以我相信他的答案。谢谢你的帮助。@BenHillier:很高兴能帮上忙!嗨,奥斯卡!你和Egg的答案都是正确的,但是@Egg在他的评论中已经让我走上了正确的轨道,所以我相信他的答案。谢谢你的帮助。@BenHillier:很高兴能帮上忙!