我在使用方法Repository时遇到了一些问题。我想找到所有的用户从城市(地址)从省从州。我认为在Repository中划分所有请求方法以提高可重用性是很好的。我打电话给:
$addr_repo = $this->getEntityManager()
->getRepository('BtpUserProBundle:Address');
$address[$key] = $addr_repo->findByProvince($province->getId());
我的方法按省份查找:
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
*/