Codeception / Codeception/module-doctrine

seeInRepository does not work with values from multiple relations

Offen
#7 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
PHP
Sterne
4
Forks
2
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Example: a one-to-many relation (uni-directional, so implemented as many-to-many with join table):

```php
#[ManyToMany(targetEntity: Ordination::class, cascade: ['all'], orphanRemoval: true)]
private Collection|ArrayCollection $ordinations;
```

Just for this example I save a `Doctor` entity with two `Ordination` relations with `haveInRepository` in my test.
But then there's no possibility to check for values of both ordinations
```php
$this->tester->seeInRepository(Doctor::class, [
'name.firstName' => 'Mauris',
'ordinations' => [
[
'externalReferenceId' => '3'
]
]
]);
```

This leads to
```
[Doctrine\ORM\Query\QueryException] [Syntax Error] line 0, col 140: Error: Expected Doctrine\ORM\Query\Lexer::T_IDENTIFIER, got '0'
```
because of the nested structure.
What works is a check for a single relation:

```php
$this->tester->seeInRepository(Doctor::class, [
'name.firstName' => 'Mauris',
'ordinations' => [
'externalReferenceId' => '3'
]
]);
```

(so as a workaround, I could call the `seeInRepository` multiple times with a different relation's values …)

The problem is in the method \Codeception\Module\Doctrine2::_buildAssociationQuery
but I'm not really sure how to fix this for a PR. Anyone with more knowledge on this?

I guess this issue is somehow related to Codeception/module-doctrine#16

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.