我需要知道是否可以做这样的事情:
$customerClient = $clientTable->findByCustomerNumber($this->array_data[$rowIndex]['D']);
$customerClient = $customerClient->findOneByEmpCartera($portfolio);
我收到此错误消息
调用未定义的方法Doctrine_Collection :: findOneByEmpCartera()
我需要在
$clientTable
对象表中做2个过滤器,任何建议对我都会有用。
最佳答案
你不能这样。findBy*
方法始终返回Doctrine_Collection
。并且需要从findBy*
对象调用Table
方法。
您可以在findBy
的一个自定义ClientTable
中执行此操作:
// you may update relation and/or table name
public function findOneCustomerByEmpCartera($customer_member, $portfolio)
{
$q = $this->createQuery()
->from('Client cl')
->leftJoin('cl.Customer cu');
->where('cl.customer_number = ? AND cu.emp_cartera', array($customer_member, $portfolio));
return $q->limit(1)->execute()->getFirst();
}
关于symfony1 - Symfony Doctrine 中的多重查找,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10989047/