我在跟踪这个问题
Explicitly set Id with Doctrine when using "AUTO" strategy
但我的申请似乎不能成功。
我的实体供应商或经销商交付:
class SuppliersOrdersDeliveries
{
/**
* @var integer
*
* @ORM\Column(name="supplier_order_id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $supplierOrderId;
{...}
}
主要的关键是
供应商订单编号
YAML文件:
id:
supplierOrderId:
type: integer
nullable: false
unsigned: true
comment: 'Supplier order ID'
id: true
column: supplier_order_id
generator:
strategy: NONE
这就是我将数据持久化到数据库的方法:
$dateTimeDeliveryTerm = new DateTime($generalDeliveryTerm);
$delivery = new \Doctrine\Entities\SuppliersOrdersDeliveries();
$delivery->setGeneralDeliveryTerm($dateTimeDeliveryTerm);
$delivery->setSupplierOrderId($supplier_order['supplier_order_id']);
$delivery->setCmsUserId($this->cmsusers->get('id'));
$this->eMgr->getClassMetaData(get_class($delivery))->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());
$this->eMgr->getClassMetaData(get_class($delivery))->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
$this->eMgr->persist($delivery);
$this->eMgr->flush();
问题是,在supplier_order_id变量中插入时仍然得到空值。
另外,我尝试在yaml和实体文件上将策略设置为“无”,但错误仍然与稍后使用setidGeneratorType函数更改类型时相同。
我不希望供应商订单ID自动递增或其他任何内容,我需要自己设置。
有什么想法吗?