Doctrine orm ymfony\Component\Debug\Exception\ContextErrorException:可捕获的致命错误:无法将类条令的对象\ORM\EntityManager转换为string@AndreVanVeen您能否更新您的问题并显示您如何
Doctrine orm ymfony\Component\Debug\Exception\ContextErrorException:可捕获的致命错误:无法将类条令的对象\ORM\EntityManager转换为string@AndreVanVeen您能否更新您的问题并显示您如何,doctrine-orm,doctrine,doctrine-query,Doctrine Orm,Doctrine,Doctrine Query,ymfony\Component\Debug\Exception\ContextErrorException:可捕获的致命错误:无法将类条令的对象\ORM\EntityManager转换为string@AndreVanVeen您能否更新您的问题并显示您如何尝试运行此代码的详细信息此错误看起来您没有正确调用它,如此处所述,请检查now@AndreVanVeen您能否将->从(“Prices”,“p”)更改为->从(“YourBundleName:Prices”,“p”)除此之外,您还没有通过set
ymfony\Component\Debug\Exception\ContextErrorException:可捕获的致命错误:无法将类条令的对象\ORM\EntityManager转换为string@AndreVanVeen您能否更新您的问题并显示您如何尝试运行此代码的详细信息此错误看起来您没有正确调用它,如此处所述,请检查now@AndreVanVeen您能否将
->从(“Prices”,“p”)
更改为->从(“YourBundleName:Prices”,“p”)
除此之外,您还没有通过setParameter()
提供一些占位符,如adminId
和userId
,完成!您可能需要更新$userPrices查询中的别名,以避免“p”已定义错误。非常感谢!方法#3仅当这不是您的预期输出时才产生业主价格,然后请在结果集中指定您还需要什么
1) $queryUsersPrices
->innerJoin('p.owner', 'o')
->leftJoin('p.users', 'u')
->andWhere('o.id = :ownerId')
/*I need to Remove records for u.id from results*/
->andWhere('u.id = :user1Id')
->setParameter('owner1Id', $owner->getId())
->setParameter('user1Id', $user->getId());
$userPrices = $queryUsersPrices->getQuery()->getResult();
2) $userPrices = $repository->createQueryBuilder($alias);
$userPrices
->select("u.prices")
->from("Price","p")
->innerJoin('p.users', 'u')
->andWhere('u.id = :userId')
->getDQL();
$query = $repository->createQueryBuilder($alias);
$query
->innerJoin($alias . '.owner', 'o')
->innerJoin($alias . '.priceType', 'pt')
->innerJoin($alias . '.model', 'm')
->where(
$query->expr()->not(
$query->expr()->in(
'p.id',
$userPrices
)
)
)
->andWhere('m.status = :m_status')
->andWhere('o.id = :adminId')
->andWhere('pt.site <> 1')
->setParameter('m_status', Model::STATUS_ACTIVE);
$result = $query->getQuery()->getResult();
3) $query = $repository->createQueryBuilder($alias);
$query
->innerJoin($alias . '.owner', 'o')
->innerJoin($alias . '.users', 'u', 'WITH', 'u.id =
:userId')
->innerJoin($alias . '.priceType', 'pt')
->innerJoin($alias . '.model', 'm')
->where('m.status = :m_status')
->andWhere('o.id = :adminId')
->andWhere('u.id IS NULL')
->andWhere('pt.site <> 1')
->setParameter('adminId', $adminUser->getId())
->setParameter('userId', $user->getId())
->setParameter('m_status', Model::STATUS_ACTIVE);
$test = $query->getQuery()->getResult();
$userPrices = $repository->createQueryBuilder('pr')
->innerJoin('pr.users', 'u')
->andWhere('u.id = :userId')
->setParameter('userId', $user->getId())
->getDQL();
$query = $repository->createQueryBuilder($alias);
$query
->innerJoin($alias . '.owner', 'o')
->innerJoin($alias . '.priceType', 'pt')
->innerJoin($alias . '.model', 'm')
->where(
$query->expr()->not(
$query->expr()->in(
$alias . '.id',
$userPrices
)
)
)
->andWhere('m.status = :m_status')
->andWhere('o.id = :adminId')
->andWhere('pt.site <> 1')
->setParameter('m_status', Model::STATUS_ACTIVE)
->setParameter('adminId', $adminUser->getId())
->setParameter('userId', $user->getId());
$result = $query->getQuery()->getResult();
$userPrices = $this->createQueryBuilder("u")
->select("u.prices")
->from("YourBundleName:Prices","p")
->innerJoin('p.users', 'u')
->andWhere('u.id = :user1Id')
->getDQL();
$qb = $this->createQueryBuilder("pr");
$qb->select("pr")
->from("YourBundleName:Price", "pr")
->innerJoin('pr.owner', 'o')
->where(
$qb->expr()->not(
$qb->expr()->in(
"pr.id",
$userPrices
)
)
)
->andWhere('o.id = :ownerId')
->setParameter('owner1Id', $owner->getId())
->setParameter('user1Id', $user->getId())
;
$query = $qb->getQuery();
$result = $query->getResult();
SELECT p
FROM Price p
JOIN p.owners o
LEFT JOIN p.users u WITH u.id = :user1Id
WHERE u.id IS NULL
AND o.id = :ownerId
$qb = $this->createQueryBuilder("p")
->select("p")
->from("Price", "p")
->innerJoin('p.owner', 'o')
->leftJoin(
'p.users',
'u',
'WITH',
'u.id = :user1Id'
)
->where('u.id IS NULL')
->andWhere('o.id = :ownerId')
->setParameter('owner1Id', $owner->getId())
->setParameter('user1Id', $user->getId())
;
$query = $qb->getQuery();
$result = $query->getResult();