私のクラスは次の両方のクラス フィールドを使用して、双方向の関係でクエリを実行したいと考えています。
class Branch {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var Company
*
* @ORM\ManyToOne(targetEntity="Company", inversedBy="branches")
* @ORM\JoinColumn(name="id_company", referencedColumnName="id", nullable=false, unique=false)
*
*/
private $idCompany;
/**
* @var string
*
* @ORM\Column(name="friendly_url", type="string", length=30, nullable=false, unique=true)
*/
private $friendlyUrl;
//...
}
class Company {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var Branch
*
* @ORM\OneToMany(targetEntity="Branch", mappedBy="idCompany")
*/
private $branches;
/**
* @var string
*
* @ORM\Column(name="friendly_url", type="string", length=30, nullable=false, unique=true)
*/
private $friendlyUrl;
//...
}
ここで、わかりやすい URL で情報をフィルタリングできるクエリを実行する必要があります
例えば:
webpage.com/company_friendly_url/branch_friendlyurl
正しいクエリを実行する方法がわからないため、これを試してみましたが、現在は機能しています。
$entities = $em->getRepository('AspersoftDirectorioBundle:Company')->findBy(
array(
'friendlyUrl' => $company_friendly_url,
'branches.friendlyUrl' => $branch_friendly_url
)
);
他の誰かがそれを行う方法について考えていますか?