我是Symfony的新人,我有2个实体(不是我创建的实体):
我想创建一个从test // Probably somewhere at the beginning of the class as a private global field
private Dictionary<string, int> _partOfSpeechDict;
public yourClassConstructor()
{
_partOfSpeechDict = new Dictionar<string, int>();
_partOfSpeechDict.Add("noun", 1);
_partOfSpeechDict.Add("verb", 2);
_partOfSpeechDict.Add("adjective", 3);
_partOfSpeechDict.Add("adverb", 4);
}
int getPos(string partOfSpeech)
{
var pos = 5; // For 'other' or default in your case
if (_partOfSpeechDict.ContainsKey(partOfSpeech))
{
pos = _partOfSpeechDict[partOfSpeech];
}
return pos;
}
中选择的查询。
test2.label = 1
但我收到了一个错误:
Bundle \ Entity \ test1没有名为test2的关联
是否有解决方案或其他方法使其发挥作用。
答案 0 :(得分:1)
试试这个:
$Websites = $this->_em
->createQuery("
SELECT w
FROM \Bundle\Entity\test1 t1
JOIN \Bundle\Entity\test2 t2
WHERE t2.id = t1.test2_id AND t2.label=1")
->getResult();
您还可以使用createQueryBuilder
方法
答案 1 :(得分:0)
使用 createQueryBuilder ,您可以使用以下
$labelValue = 1;
/* Get the EntityManager Resource */
$em = $this->getDoctrine->getManager();
$em->getRepository('AppBundle:test1')
->createQueryBuilder('t1')
->select('t1.w') /*Here you can select respective table columns */
->innerJoin('t1.test2_id', 't2')
->where('t2.label = :label') /* if label value coming from external value else ->where('t2.label = 1') and omit next line */
->setParameter('label',$labelValue) /*In case if your label value coming for external value */
->getQuery()
->getResult();