【发布时间】:2014-12-21 12:11:25
【问题描述】:
我想知道是否可以将实体配置为自动从另一个实体加载数据。 例如。
/**
* 帐户用户
*
* @ORM\Table()
* @ORM\实体
*/
类帐户用户
{
/**
* @var 整数
*
* @ORM\Column(name="id", type="integer")
* @ORM\ID
* @ORM\GeneratedValue(strategy="AUTO")
*/
公共$id;
/**
* @var 字符串
*
* @ORM\Column(name="userid",type="integer")
*/
公共$用户ID;
/**
* @var 字符串
*
* @ORM\Column(name="roleid",type="integer")
*/
公共 $roleid;
/**
* @var 字符串
* 管理员、顾问等
* @ORM\Column(name="roleType", type="string", length=255)
*/
公共$角色类型;
/**
* @var 字符串
*
* @ORM\Column(name="firstname", type="string", length=255)
*/
公共$名;
/**
* @var 字符串
*
* @ORM\Column(name="lastname", type="string", length=255)
*/
公共$姓氏;
/**
* @var 字符串
*
* @ORM\Column(name="company", type="string", length=255)
*/
公共$公司;
/**
* @var 字符串
*
* @ORM\Column(name="url", type="string", length=255)
*/
公共 $url;
/**
* @var 字符串
*
* @ORM\Column(name="phone", type="string", length=255)
*/
公共$电话;
/**
* @var 字符串
*
* @ORM\Column(name="phone2", type="string", length=255)
*/
公共$电话2;
/**
* @var 字符串
*
* @ORM\Column(name="address", type="string", length=255)
*/
公共$地址;
/**
* @var 字符串
*
* @ORM\Column(name="address2", type="string", length=255)
*/
公共$地址2;
/**
* @var 字符串
*
* @ORM\Column(name="city", type="string", length=255)
*/
公共$城市;
/**
* @var 字符串
*
* @ORM\Column(name="state", type="string", length=255)
*/
公共$状态;
/**
* @var 字符串
*
* @ORM\Column(name="zip", type="string", length=255)
*/
公共 $zip;
/**
* @var 字符串
*
* @ORM\Column(name="email", type="string", length=255)
*/
公共$电子邮件;
/**
* @var 字符串
*
* @ORM\Column(name="password", type="string", length=255)
*/
公共$密码;
}
与
/** * 帐户 * * @ORM\Table() * @ORM\实体 */ 班级账户 { /** * @var 整数 * * @ORM\Column(name="id", type="integer") * @ORM\ID * @ORM\GeneratedValue(strategy="AUTO") */ 公共$id; /** * @var 字符串 * * @ORM\Column(name="partnerid", type="string", length=100) */ 公共 $partnerid; /** * @var \日期时间 * * @ORM\Column(name="订阅日期", type="date") */ 公共$订阅日期; /** * @var 字符串 * * @ORM\Column(name="connectionType", type="string", length=100) */ 公共$连接类型; /** * @var 字符串 * * @ORM\Column(name="recordkeeperTpaid", type="string", length=100) */ 公共 $recordkeeperTpaid; /** * @var 字符串 * * @ORM\Column(name="recordkeeperAdviceProviderCd", type="string", length=100) */ 公共 $recordkeeperAdviceProviderCd; /** * @var 字符串 * * @ORM\Column(name="recordkeeperUrl", type="string", length=200) */ 公共 $recordkeeperUrl; /** * @var 字符串 * * @ORM\Column(name="recordkeeperUser", type="string", length=100) */ 公共 $recordkeeperUser; /** * @var 字符串 * * @ORM\Column(name="recordkeeperPass", type="string", length=100) */ 公共 $recordkeeperPass; /** * @var 字符串 * * @ORM\Column(name="recordkeeperPortfoliosAvailable", type="smallint") */ 公共 $recordkeeperPortfoliosAvailable; /** * @var 字符串 * * @ORM\Column(name="recordkeeperRiskBasedFundsAvailable", type="smallint") */ 公共 $recordkeeperRiskBasedFundsAvailable; /** * @var 字符串 * * @ORM\Column(name="investmentsMinScore", type="integer") */ public $investmentsMinScore; /** * @var 字符串 * * @ORM\Column(name="investmentsMaxScore", type="integer") */ 公共 $investmentsMaxScore; /** * @var 字符串 * * @ORM\Column(name="ACAon", type="smallint") */ 公共$ACAon; /** * @var 字符串 * * @ORM\Column(name="MSTClientID", type="string", 长度 = 100) */ 公共 $MSTClientID; }是否可以设置accountsUsers在findby、findbyone等访问accountsUsers时自动加载所有accounts数据,关系是accountsUsers.userid = accounts.id。
如果没有,我将如何在使用原则的连接中执行此操作。我知道如何使用纯原始 sql 来做到这一点。
例如。 SELECT * FROM accounts a LEFT JOIN accountsUsers b ON a.id = b.用户名
【问题讨论】:
-
手册是开始学习 Doctrine 2 关系的好地方。 symfony.com/doc/current/book/doctrine.html
-
我查看了手册,它对我一点帮助都没有。
-
没关系,我明白了!我不得不非常缓慢地完成这个例子,哈哈。
标签: symfony join doctrine entity