gpt4 book ai didi

php - 找不到实体存储库方法

转载 作者:行者123 更新时间:2023-11-29 08:03:48 25 4
gpt4 key购买 nike

我在使用方法存储库时遇到了一些问题。我想找到来自该州省份城市(地址)的所有用户。我认为将所有请求方法划分在存储库中以获得更多的可重用性是很好的。我打电话:

$addr_repo = $this->getEntityManager()
->getRepository('BtpUserProBundle:Address');
$address[$key] = $addr_repo->findByProvince($province->getId());

和我的方法 findByProvince:

namespace Btp\UserProBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
* AddressRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class AddressRepository extends EntityRepository
{

public function findByProvince($province_id)
{
var_dump("lol");
$ret = $this->getEntityManager()
->createQuery('SELECT a FROM Btp\UserProBundle\Entity\Address a JOIN a.province p WHERE p.id = :val')
->setParameter('val', $province_id)
->getResult();

var_dump($ret);
return $ret;
}

地址:

* @ORM\Table(name="address")
* @ORM\Entity(repositoryClass="Btp\UserProBundle\Repository\AddressRepository")
* @ORM\Entity
*/
class Address {//somethink}

不显示“lol”。但我没有任何错误。另一个问题;您认为在另一个存储库中使用存储库是不好的做法吗(从概念上讲)

谢谢

最佳答案

正如我的评论中提到的,您应该删除 Address 类声明中的第二个 @ORM\Entity

* @ORM\Table(name="address")
* @ORM\Entity(repositoryClass="Btp\UserProBundle\Repository\AddressRepository")
* @ORM\Entity <---- remove this
*/

关于php - 找不到实体存储库方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23129113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com