Size: a a a

2021 June 18

D

Dmitry in symfony
у вас в странах нет ид ? просто имя и код ?
источник

D

Dmitry in symfony
если так, сделайте код страны как ИД, он вполне себе уникальный
источник

IR

Ilshat Rakhmatullin in symfony
в этом вся и проблема. для легаси кода нужен id в сущности. поэтому и по нему @Id.
а в новых сущностях я делаю по country code. и чтобы добавлять новые сущности, приходится лезть в таблицу стран и получать их сущности вместе с id. и указывать так.
источник

D

Dmitry in symfony
вообще ничего не понимаю
источник

AP

Andrey Polyanichko in symfony
+
источник

D

Dmitry in symfony
зачем вы в базу лезете ?
источник

D

Dmitry in symfony
ИД обязателен, это не обойти.
источник

D

Dmitry in symfony
если ИД по коду страны - можно создать сущность без залезания в базу и передать ее на ваш обьект
источник

D

Dmitry in symfony
new CountryEntity(countryCode, CountryName)
источник

D

Dmitry in symfony
или вы просто вписываете в вашу новую сущность countryCode и хотите чтобы оно связало с таблицей стран по нему?
источник

IR

Ilshat Rakhmatullin in symfony
допустим есть Client. у которого есть realtion Country (по коду страны, не по @ Id)
client.countryCode === 'ru'

чтобы через orm создать клиента, мне надо делать $c = countryRep.findByCode(client.countryCode)
потом указывать client.setCountry(c);
источник

D

Dmitry in symfony
логично, вам нужна сущность, а не просто код
источник

D

Dmitry in symfony
если вписывать просто код, то сохранять можно без сущности, но тогда на чтение придется ручками читать данные по коду страны
источник

IR

Ilshat Rakhmatullin in symfony
вот.
но так как countryCode тоже указан как @ ORM/Column. может возможно просто его указывать, но отключать проверку связей при persist
источник

D

Dmitry in symfony
при ORM\Column связи не будет
источник

D

Dmitry in symfony
за связь отвечают ManyToOne и его клоны
источник

IR

Ilshat Rakhmatullin in symfony
в коде сейчас и  column и manytoone
источник

IR

Ilshat Rakhmatullin in symfony
но manytoone не дает создавать только по column
источник

D

Dmitry in symfony
ну вы тогда либо трусы либо крестик
источник

D

Dmitry in symfony
выбирайте что-то одно
либо ManyToOne и сохранять с сущностью и потом чтение ее будет автоматическим
либо просто Column и запись без сущности а просто строка, но читать придется руками
источник