Мне необходимо написать автогенерацию номера. Использую доктрину для создания записи.
$contract = new Contracts();
$contract->exchangeArray($form->getData());
$contract->setContactId($contactId);
$contract->setType($type);
$contract->setCreatedAt($date);
$this->getEntityManager()->persist($contract);
$this->getEntityManager()->flush();
как в транзакцию добавить select типа
SELECT MAX(number) as number FROM contracts
Сделать инкремент полученного результата и уже все это только флашить.
Поля number не уникальны. АВТО инкремент поля не получится т.к один договор может занимать несколько строчек в базе с одним номером. Причина того что надо все в одну транзакцию в том, чтоб при одновременном создание двумя-тремя итд людьми контрактов, не создался одинаковый номер у договоров