Skip to content

Instantly share code, notes, and snippets.

@vnagara
Last active December 19, 2015 16:19
Show Gist options
  • Save vnagara/5982836 to your computer and use it in GitHub Desktop.
Save vnagara/5982836 to your computer and use it in GitHub Desktop.
doctrine problem
<?php
/**
* Class Site
* @ORM\Entity
* @ORM\Table(name="ad_posting_site",
* uniqueConstraints={@ORM\UniqueConstraint(name="display_name", columns={"display_name"})}
* )
*/
class Site extends AbstractEntityParams
{
/**
* @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer")
* @var int
*/
protected $id;
/**
* @ORM\Column(type="string", length=50, name="display_name")
* @var string
*/
protected $displayName;
/**
* @ORM\Column(type="string", length=255)
* @var string
*/
protected $uri;
}
/**
* Class Ad
* @ORM\Entity
* @ORM\Table(name="ad_posting_ad")
*/
class Ad
{
/**
* @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer")
* @var int
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="AdPosting\Entity\Site")
* @var \AdPosting\Entity\Site
*/
protected $site;
/**
* @ORM\ManyToOne(targetEntity="AdPosting\Entity\User")
* @var \AdPosting\Entity\User
*/
protected $user;
}
/**
* Class Account
* @ORM\Entity
* @ORM\Table(name="ad_posting_account",
* uniqueConstraints={@ORM\UniqueConstraint(name="user_id", columns={"user_id", "site_id"})}
* )
*/
class Account extends AbstractEntityParams
{
/**
* @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer")
* @var int
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="AdPosting\Entity\User")
* @var User
*/
protected $user;
/**
* @ORM\ManyToOne(targetEntity="AdPosting\Entity\Site")
* @var Site
*/
protected $site;
/**
* @ORM\Column(type="string", length=64)
* @var string
*/
protected $login;
/**
* @ORM\Column(type="string", length=64, nullable=true)
* @var string
*/
protected $password;
/**
* @ORM\Column(type="datetime", nullable=true)
* @var DateTime
*/
protected $created;
}
/**
* Class User
* @ORM\Entity
* @ORM\Table(name="ad_posting_user")
*/
class User extends AbstractEntityParams
{
/**
* @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer")
* @var int
*/
protected $id;
/**
* @ORM\Column(type="string", length=64, name="preferred_login", unique=true, nullable=true)
* @var string
*/
protected $preferredLogin;
/**
* @ORM\Column(type="string", length=50, name="display_name", nullable=true)
* @var string
*/
protected $displayName;
/**
* @ORM\Column(type="string", length=64)
* @var string
*/
protected $password;
/**
* @ORM\Column(type="string", length=30, nullable=true)
* @var string
*/
protected $name;
/**
* @ORM\Column(type="string", length=30, nullable=true)
* @var string
*/
protected $surname;
/**
* @ORM\Column(type="date", nullable=true)
* @var DateTime
*/
protected $birthday;
/**
* @ORM\Column(type="string", length=8, name="postal_code", nullable=true)
* @var string
*/
protected $postalCode;
/**
* @ORM\ManyToOne(targetEntity="AdPosting\Entity\Account" )
* @ORM\JoinColumn(name="primary_account_id")
* @var \AdPosting\Entity\Account
*/
protected $primaryAccount;
/**
* @ORM\Column(type="datetime", nullable=true)
* @var DateTime
*/
protected $created;
}
@vnagara
Copy link
Author

vnagara commented Jul 12, 2013

а нужен еще свойство типо как
/**
* @Orm\OneToOne(targetEntity="AdPosting\Entity\Account")
* @Orm\JoinColumns{
* @Orm\JoinColumn(name="user_id", referencedColumnName="user_id"),
* @Orm\JoinColumn(name="site_id", referencedColumnName="site_id")
* }
* @var \AdPosting\Entity\Account
*/
protected $account;

Но такое доктрина не понимает:
[Doctrine\ORM\ORMException] Column namesite_idreferenced for relation from AdPosting\Entity\Ad towards AdPosting\Entity\Account does not exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment