Doctrine orm 原则2参考表
我有以下问题。 我有两张桌子Doctrine orm 原则2参考表,doctrine-orm,orm,Doctrine Orm,Orm,我有以下问题。 我有两张桌子 product id|name|stock_status_id stock_status stock_status_id|language_id|name 我需要通过stock\u status\u id获取产品中的对象StockStatus。 我使用这个代码 <?php namespace OC\Model\Catalog\Product; use Doctrine\ORM\Mapping as ORM; use Doctrine\Commo
product
id|name|stock_status_id
stock_status
stock_status_id|language_id|name
我需要通过stock\u status\u id获取产品中的对象StockStatus。
我使用这个代码
<?php
namespace OC\Model\Catalog\Product;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Class Product
*
* @ORM\Entity
* @ORM\Table(name="oc_product")
*/
class Product
{
/**
* @var int
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer", nullable=false)
*/
protected $product_id;
/**
* @var ArrayCollection
* @ORM\OneToOne(targetEntity="StockStatus", mappedBy="stock_status_id")
* @ORM\JoinColumn(name="stock_status_id", referencedColumnName="stock_status_id")
*/
protected $stock_status;
像这样的事情是你能做的
1-首先更新产品实体类,如下所示:
namespace OC\Model\Catalog\Product;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Class Product
*
* @ORM\Entity
* @ORM\Table(name="oc_product")
*/
class Product
{
/**
* @var int
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer", nullable=false)
*/
protected $product_id;
/**
* @ORM\OneToOne(targetEntity="StockStatus")
* @ORM\JoinColumn(name="stock_status_id", referencedColumnName="stock_status_id")
*/
protected $stock_status;
}
只需删除数组集合变量,因为这是一对一的关系,所以不会有数组,只有StockStatus实体类的对象
2-从特定语言的产品中检索StockStatus对象的查询
public function GetStockStatusByLanguageId($languageId)
{
$queryBuilder = $this->entityManager->createQueryBuilder();
$queryBuilder->select('stock_status')
->from('OC\Model\Catalog\Product', 'product')
->join('product.stock_status', 'stock_status')
->where($queryBuilder->expr()->eq('stock_status.language_id', $languageId));
$result = $queryBuilder->getQuery()->getResult();
return $result;
}
假设您的产品实体类有一个存储库,这是一个示例函数。如果这是你需要的,请告诉我