我在方法库中遇到了一些麻烦。 我想找到来自省(地区)的所有用户来自省份的州。 我认为在存储库中划分所有请求方法以获得更多可重用性是很好的。 我打电话给:
$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”不显示。但我没有任何错误。 另一个问题;您是否认为在另一个存储库中使用存储库(从概念上讲)是不好的做法
由于
答案 0 :(得分:2)
如我的评论中所述,您应该删除@ORM\Entity
类声明中的第二个Address
* @ORM\Table(name="address")
* @ORM\Entity(repositoryClass="Btp\UserProBundle\Repository\AddressRepository")
* @ORM\Entity <---- remove this
*/