// This is my entity class object
use Doctrine\ORM\Mapping as ORM;
class PayOrder {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string",unique=true)
*/
private $pay_no;
};
// I use it in my function, this is the Repository
use Doctrine\ORM\EntityManager;
use Exception;
use Psr\Container\ContainerInterface;
use Doctrine\ORM\Mapping;
class PayOrderRepository extends \Doctrine\ORM\EntityRepository {
public function get( PayOrder $payOrder ) {
$pay_no=$payOrder->getPayNo();
// It will occurs a exception, how to fix it, any one can help me?
return $this->findBypayno($pay_no);
}
};
除此之外,我找不到解决该问题的文档。
我想使用字段名pay_no
,并且我想使用存储库
findbyxxx,但是我不能正确使用它。
答案 0 :(得分:2)
将您的媒体资源名称更改为$payNo
。
在您的实体中大概是这样;
//...
/**
* @ORM\Column(type="string", length=255)
*/
$pay_no
//....
那样修改它;
//...
/**
* @ORM\Column(name="pay_no", type="string", length=255)
*/
$payNo
//....
之后,
$pay_no
的旧的getter / setter app/console doctrine:generate:entities
bin/console make:entity --regenerate
祝你好运。如果您有任何疑问或阻碍,请写信给我。
答案 1 :(得分:0)
或者只是使用
$this->findBy(['pay_no' => $payOrder->getPayNo());
findByX
方法只是拦截的方法调用-请参阅line up 177 to 179转换为findBy
调用。