首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2多表连接问题

Symfony2多表连接问题
EN

Stack Overflow用户
提问于 2015-01-11 02:43:53
回答 1查看 29关注 0票数 0

我是Symfony的初学者。

我有两个实体:股票和销售。两者都有它们关联的数据库表。

股票的结构如下:

代码语言:javascript
复制
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| name        | varchar(255) | NO   |     | NULL    |                |
| description | varchar(255) | NO   |     | NULL    |                |
| input       | int(11)      | NO   |     | NULL    |                |
| output      | int(11)      | NO   |     | NULL    |                |
| balance     | int(11)      | NO   |     | NULL    |                |
| created     | datetime     | NO   |     | NULL    |                |
| updated     | datetime     | NO   |     | NULL    |                |
| unitcost    | double       | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

销售结构如下:

代码语言:javascript
复制
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| cost       | double   | NO   |     | NULL    |                |
| date       | datetime | NO   |     | NULL    |                |
| profitloss | double   | NO   |     | NULL    |                |
| sid        | int(11)  | YES  | MUL | NULL    |                |
+------------+----------+------+-----+---------+----------------+

我试图在股票和销售之间建立一对多的关系。

库存是一家商店出售的所有商品的清单。销售是库存数据库表中任何项目实际采购的记录。

在展示我的第一个销售项目的过程中,我遇到了一个很大的问题。

为了显示销售,我的设想是在两个表之间执行一个SQL语句,其中的Sales:sid:==股票:id-我遇到了新的问题,因为我找不到一种直接的方式来执行我已经习惯的那种SQL执行。

我怎么才能开始呢?我希望通过从“股票”表中获取相关数据来打印每个销售的详细信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-11 07:12:55

原则处理这类事情,因为you.You可以创建双向的一对多的关联,就像在一对多协会中一样。所以你的股票实体就像

代码语言:javascript
复制
class Stock{
 ...

 /**
 *@OneToMany(targetEntity="YourBundleNamespace\Entity\Sale", mappedBy="stock")
 *
 */
 protected $sales;

}
代码语言:javascript
复制
class Sale{  

protected $id;
....
/**
*@ManyToOne(targetEntity="YourBundleNameSpace\Entity\Stock", inversedBy="sales")
*@JoinColumn(name="sid", referencedColumnName="id")
*/
protected $stock;

}

然后,只需找到您想要的销售实体控制器并调用$sale->getStock(),您将得到与该销售相关的Stock实体。

对于sql,执行原则具有执行原始sql的能力,但最好使用原则的dql和QueryBuilder。见dqlQueryBuilder

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27883459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档