dsg41888 2015-02-04 15:20
浏览 28

问题与Doctrine中的实体映射

I am getting the following error in Doctrine and my guess is that there is an issue on the mapping of the two correlated entities:

 at ErrorHandler->handle('8', 'Undefined index: fooId', 'vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php', '685', array('entity' => object(FooCategory), 'result' => array(), 
'uow' => object(UnitOfWork), 'versioned' => null, 'field' => 'foo', 'change' => array(null, object(FooTranslation)), 'newVal' => object(FooTranslation), 'assoc' => array('fieldName' => 'foo', 
'targetEntity' => 'XXX\SomeBundle\Entity\FoonTranslation', 'joinColumns' => array(array('name' => 'foo_id', 'unique' => true, 'nullable' => true, 'onDelete' => null, 
'columnDefinition' => null, 'referencedColumnName' => 'foo_id')), 'mappedBy' => null, 'inversedBy' => null, 'cascade' => array(), 'orphanRemoval' => false, 'fetch' => '2', 'type' => '1', 'isOwningSide' => true, 
'sourceEntity' => 'XXX\SomeBundle\Entity\FooCategory', 'isCascadeRemove' => false, 'isCascadePersist' => false, 'isCascadeRefresh' => false, 'isCascadeMerge' => false, 'isCascadeDetach' => false, 
'sourceToTargetKeyColumns' => array('foo_id' => 'foo_id'), 'joinColumnFieldNames' => array('foo_id' => 'foo_id'),    
'targetToSourceKeyColumns' => array('foo_id' => 'foo_id')), 
'oid' => '000000002ec87daf00000000461b1d81', 
'newValId' => array('fooTranslationId' => '1635'), 'targetClass' => object(ClassMetadata), 'owningTable' => 'foo_category',
'joinColumn' => array('name' => 'foo_id', 'unique' => true, 'nullable' => true, 'onDelete' => null, 'columnDefinition' => null,
'referencedColumnName' => 'foo_id'), 'sourceColumn' => 'foo_id', 'targetColumn' => 'foo_id', 'quotedColumn' => 'foo_id')) in vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 685

UPDATE These are the FooTranslation details and mappings:

/**
 * FooTranslation
 *
 * @ORM\Table(name="foo_translation", indexes=    {@ORM\Index(name="foo", columns={"foo_id"})})
 * @ORM\Entity(repositoryClass="XXX\SomeBundle\Entity\Repository\FooTranslationRepository")
     */
    class FooTranslation
    {

       /**
     * @var integer
     * @ORM\Id
     * @ORM\Column(name="foo_translation_id", type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $fooTranslationId;



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

-- These are the FooCategory details and mappings:

**
 * FooCategory
 *
 * @ORM\Table(name="foo_category")
 *     @ORM\Entity(repositoryClass="XXX\SomeBundle\Entity\Repository\FooCategoryRepository")
 */

class FooCategory
{

/**
 * @var integer
 *
 * @ORM\Id
 * @ORM\Column(name="foo_category_id", type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $fooCategoryId;


/**
     * @var \XXX\SomeBundle\Entity\Category
     *
     * @ORM\ManyToOne(targetEntity="XXX\SomeBundle\Entity\Category")
     * @ORM\JoinColumn(name="category_id", referencedColumnName="category_id")
     *
     */
    private $category;

Hope that this helps.

UPDATE Nr2

This is the actual message:

ContextErrorException: Notice: Undefined index: fooId in /vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 685

The stack trace is above.

Thanks alot.

Foo_Category table:

CREATE TABLE `foo_category` (
  `foo_category_id` int(11) NOT NULL AUTO_INCREMENT,
  `foo_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `category_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`foo_category_id`),
  KEY `foo_category_foo` (`competition_id`),
  KEY `foo_category_category` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


CREATE TABLE `foo_translation` (
  `foo_translation_id` int(11) NOT NULL AUTO_INCREMENT,
  `foo_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `foo` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `foo_shortname` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `section` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
  `timestamp_add` datetime NOT NULL,
  `timestamp_update` datetime DEFAULT NULL,
  PRIMARY KEY (`foo_translation_id`),
  KEY `foo` (`foo_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1710 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
    • ¥20 怎么用dlib库的算法识别小麦病虫害
    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?