Tharos / LeanMapper

Lean Mapper is a tiny ORM based on powerful Dibi database abstraction library for PHP.
MIT License
87 stars 35 forks source link

Dotaz: Přístup k referenční entitě #161

Closed Pechynho closed 2 years ago

Pechynho commented 2 years ago

Ahoj,

zdědil jsem projekt, kde je toto ORM a narazil jsem na následující problém.

Mám nadefinovanou entitu Transaction

 * ...
 * @property PaymentOrder|null $paymentOrder m:hasOne(payment_order_id)
 */
class Transaction extends Entity
{
}

Následující kód vyhodí chybu (při ukládání do proměnné $t):

$a = new Transaction();
$a->paymentOrder = null;
$t = $a->paymentOrder;

Text chyby:

Cannot get value of property 'paymentOrder' in entity App\DAL\Entity\Transaction due to low-level failure: Cannot get referenced Entity for detached Entity.
Tomac1 commented 2 years ago

Ahoj, pokud se nemýlím, tak by entitu $a bylo dobré zapersistovat v repu.

$a = new Transaction();
$a->paymentOrder = null;
$this->transactionRepository->persist($a);
$t = $a->paymentOrder;

Díky tomu nebude entita detached, ale attached.

Pechynho commented 2 years ago

Úplně na rovinu jestli máš pravdu - snad se nikoho nedotknu - tohle je úplně k ničemu přístup a nepoužitelné ORM.

Opravdu nemohu přistoupit k proměnné instance entity, bez toho aniž bych musel bombardovat databázi dotazy?

janpecha commented 2 years ago

@Pechynho Ahoj, je to aktuálně tak, jak píše @Tomac1, persitence té entity by pomohla. Ale podívám se na to blíž a zkusím to opravit, nedává moc smysl, aby tebou uvedený příklad končil chybou.

janpecha commented 2 years ago

@Pechynho vydal jsem verzi 4.0.2, ve které by měl tebou uvedený kód fungovat bez vyhození chyby.

Pechynho commented 2 years ago

@janpecha Díky, díky za rychlou úpravu