对于初学者问题,我表示歉意,但我正在努力应该看起来应该是一个简单的查询。我可以在MySQL中完美运行它,但无法在我的symfony应用程序中使用它。从本质上讲,这是所有我想要做的事:Symfony和DQL语法
SELECT *
FROM benefits b
WHERE b.company_id = X
X =
SELECT id
FROM company c
WHERE c.user_id = ($this->getUser()->getGuardUser()->getId())
我试过很多语句组合,但仍无法得到它的,结果我想要的,比如工作:
public function executeIndex(sfWebRequest $request)
{
$this->benefitss = Doctrine_Core::getTable('benefits')
->createQuery('b')
->where('user_id = ?', '$this->getUser()->getGuardUser()->getId()')
->leftJoin('b.Company c')
->andWhere('c.user_id = ?', '$this->getUser()->getGuardUser()->getId()')
->execute();
}
这里是我的冷凝模式:
Benefits
columns
id
user_id
company_id
name
relations
User {class: sfGuardUser}
Company
Company
columns
id
user_id
name
relations
User {class: sfGuardUser}
sfGuardUser
columns
id
注也:用户未分配的company_id b/C并非所有用户都会根据我的用户定义有公司。
任何帮助这个可怜的初学者将不胜感激。 :)
更新11年8月27日:
这得到我想要的结果:
$this->benefitss = Doctrine_Core::getTable('benefits')
->createQuery('b')
->leftJoin('b.Company c')
->Where('c.user_id = ?', '1')
->execute();
当 '1' 必须是当前用户的ID。但是,当我将where子句更改为:
->Where('c.user_id = ?', '$this->getUser()->getGuardUser()->getId()')
我没有得到任何结果。
任何想法?
感谢您的response.Are你说去除Where和Where声明?如果是这样,那不会导致我所寻找的。 – Patrick
请在原始问题中查看我的更新结果。 – Patrick
@帕特里克:是的。 – scube