config
config.yml
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
customer:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: 'trade'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AppBundle: ~
customer:
connection: customer
mappings:
AppBundle:
dir: EntityTrade
AppBundle\Entity\acclogin
class acclogin
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string",unique=true)
* @Assert\NotBlank(message="can't empty!",groups={"registration","login"})
* @Assert\Length(min=6,max=64,minMessage="invalid 1",maxMessage="invalid 1",groups={"registration","login"})
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="AppBundle\EntityTrade\PayOrder",mappedBy="account")
*/
private $payorders;
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return account_login
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
}
//AppBundle\EntityTrade\PayOrder
class PayOrder
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string")
* @Assert\NotBlank(message="can't empty!",groups={"payAdd"})
*/
private $pay_id;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\acclogin",inversedBy="payorders")
* @ORM\JoinColumn(name="pay_id",referencedColumnName="name")
*/
private $account;
.....
....
...........here is getter and setter
}
//AppBundle\EntityTrade\PayOrderRepository
class PayOrderRepository extends \Doctrine\ORM\EntityRepository {
public function get( PayOrder $payOrder ) {
$pay_no = $payOrder->getPayNo();
return $this->findOneBy( [ 'pay_no' => $pay_no ] );
}
}
он генерирует исключение, которое является "Отсутствует значение для идентификатора первичного ключа в AppBundle \ Entity \ acclogin" в этом коде "$ this-> findOneBy (['pay_no' => $ pay_no]);"почему? мне нужно добавить первичный ключ в "имя", любое тело может мне помочь? большое спасибо!если я изменю @ORM \ JoinColumn (name = "pay_id", referencedColumnName = "name") на @ORM \ JoinColumn (name = "id", referencedColumnName = "id"), я буду работать, но $ PayOrder-> getAccount(), только идентификатор имеет данные, имя acclogin всегда равно null ll