2

編集:この例は完全に機能しています:-) Mea culpa

エンティティを継承する必要があります:

/**
 * User
 *
 * @ORM\Table(name="user")
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap({"user" = "User", "worker" = "Worker", "customer" =     "Customer"})
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;
   }

子エンティティ:

 /**
  * Worker
  *
  * @ORM\Table(name="worker")
  * @ORM\Entity
  */
 class Worker extends User
 { 
 }

そして、私のデータベースの一部があります

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (`id`),
) ENGINE=InnoDB  

CREATE TABLE IF NOT EXISTS `worker` (
  `id` int(11) NOT NULL
)

ALTER TABLE `worker`
  ADD CONSTRAINT `FK_Worker_User` FOREIGN KEY (`id`) REFERENCES `user` (`id`) ON     DELETE CASCADE ON UPDATE CASCADE;

私は何を間違っていますか?ユーザー エンティティ (抽象的ではない!) を操作しようとすると、次のエラーが表示されます: Doctrine\DBAL\DBALException

An exception occurred while executing 
'SELECT t0.id AS id1, t0.name AS name2, t0.surname AS surname3, 
t0.email AS email4, t0.password AS password5, t0.phone AS phone6, 
t0.www AS www7, t0.skype AS skype8, t0.active AS active9, 
t0.datetime AS datetime10, t0.role_id AS role_id11, 
t0.company_id AS company_id12, t0.type, t13.salary AS salary14, 
t13.hourSalary AS hourSalary15, t13.parent AS parent16, t13.userGroup_id AS userGroup_id17 
FROM user t0 
LEFT JOIN worker t13 ON t0.id = t13.id 
LEFT JOIN customer t18 ON t0.id = t18.id 
WHERE t0.email = ? LIMIT 1' 
with params {"1":"info@ondrej-sejvl.cz"}: 
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't13.id' in 'on clause'

なぜt13.id columngは不明なのですか..それは私のDBにあります

4

0 に答える 0