0

我创建了单独generalBundle的,它具有ModelEntity.MystoreBundle扩展了捆绑实体。但是

app/console doctrine:schema:update --force

命令不创建generalBundle字段。它只创建storeBundle额外创建的字段。我不确定我哪里出错了,有人可以建议吗?

我的generalBundle模型类包含

namespace ste\GeneralBundle\Model;

use DateTime;

abstract class Share 
{
    protected $id;
    protected $user;
    protected $comment;

    public function __construct()
    {
        $this->setCreatedAt(new \DateTime());
        $this->setUpdatedAt(new \DateTime());
    }

    public function getId()
    {
        return $this->id;
    }



    public function setComment($comment)
    {
        $this->comment = $comment;
    }


    public function getComment()
    {
        return $this->comment;
    }
}

我的generalBundle实体类包含

    namespace ste\ActivityBundle\Entity;

    use ste\GeneralBundle\Model\Share as BaseShare;


    class Share extends BaseShare
    {

    }

最后我的StoreBundle实体类包含

namespace ste\StoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Doctrine\Common\Collections\ArrayCollection;
use ste\GeneralBundle\Entity\Share as BaseShare;

    /**
     * ste\StoreBundle\Entity\Share
     *
     * @ORM\Table(name="shares")
     */
    class Share extends BaseShare
    {
        /** 
         * @var integer $id
         *
         * @ORM\Column(name="id", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        protected $id;
    }

此处protected $id;归档是稍后添加的,因为我得到了类似的错误

No identifier/primary key specified for Entity "ste\StoreBundle\Entity\Share" sub class of "ste\GeneralBundle\Entity\Share". Every Enti  
  ty must have an identifier/primary key.  

我的GeneralBundle > Resources> Config >Doctrine包含文件Share.orm.xml包含:

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                  http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <entity name="ste\GeneralBundle\Entity\Share" table="share">

        <id name="id" column="id" type="integer">
            <generator strategy="AUTO" />
        </id>

        <field name="user" column="user_id" type="integer" />


        <field name="comment" column="comment" type="string" length="255" />


    </entity>

</doctrine-mapping>

没有做其他配置!任何线索?有什么要补充的DependencyInjection吗?

4

1 回答 1

0

我得到了答案。我必须添加config.yml以下几行:

orm:
        entity_managers:
            default:
                mappings:
                   steStoreBundle: ~
                   steGeneralBundle: ~

因为它是单独的捆绑包,而不是StoreBundle我的情况。

于 2013-02-19T14:31:13.873 回答