[TYPO3-german] Dirty Wert von Relationen eines

Matthew Colton mat.colton at web-xs.de
Wed Feb 10 21:22:13 CET 2021


Hi Dieter,

Am 10.02.21 um 18:45 schrieb _doc at freenet.de:

> Hallo Mat,
>
> Mir ist aber nicht ganz klar, was du damit erreichen möchtest.
Einfach prüfen ob sich eine ganz bestimmte Relation auf einen ganz 
bestimmten Wert geändert hat. Falls ja und nur dann muss eine recht 
aufwendige Prozedur initiiert werden.
> wenn ich es richtig weiß, wird ein Objekt erst nach dem Verlassen des
> Controller persitiert.
Genau so ist es. Mit persistAll() kann das allerdings erzwungen werden.
>   Das ObjectStorage macht keinen Vorab-Vergleich zu
> einem möglicherweise bestehenden Object.

Doch, soweit ich das im Quellcode sehe wird genau geschaut welche Werte 
sich geändert haben. Ob sich der Wert einer Eigenschaft geändert hat 
kann via _isDirty() abgefragt werden. Aber leider nicht für relationale 
Felder.

>   Den müsstest du vermutlich
> selbst schreiben(Count-Abfrage)
Anscheinend ja, und zwar ohne ObjectStorage, denn dieser rückt immer nur 
den neuen Wert raus.
> Ich verstehe den Anlass für dein Problem nicht?
Siehe oben, Lastverminderung.
>
> Wenn du mit mm_relationen arbeitest, dann steht in dem zugeordneten
> Relationsfeld aus deinem Model in der Regel die Anzahl der über dieses
> Feld relational verknüpften Elementen. (Die MM-Relationen sollen, wo ich
> glaube irgendwann mal gelesen zu haben, auch funktionieren, wenn in dem
> Feld ein falscher Wert drinsteht. Ich habe kein großes Vertrauen in den
> Wert in diesem Feld.)

Der Wert an sich nützt mir leider auch nichts. Die Prozedur muss 
lediglich in bestimmten Fällen initiiert werden.

Cheers,

Mat


> Mit besten Grüßen
>    Dieter
>
> Am 10.02.2021 um 09:21 schrieb Matthew Colton:
>> Hallo Leute,
>>
>> ist hier wirklich niemand bisher über das Problem gestolpert?
>>
>> -- 
>>
>> Cheers
>> Mat
>>
>> Am 04.02.21 um 11:14 schrieb Matthew Colton:
>>> Hallo allerseits,
>>>
>>> ich möchte in einem Controller beim Update von einem Objekt wissen ob
>>> eine bestimmte Relation geändert wurde. Normalerweise würde ich wie
>>> folgt vorgehen:
>>>
>>> $company->getTitle()->_isDirty();
>>>
>>> Das funktioniert ja auch super solange die Eigenschaft kein
>>> ObjectStorage ist. Wie kann ich prüfen ob ein ObjectStorage verändert
>>> wurde? Also ob dem ObjectStorage ein Objekt hinzugefügt oder entfernt
>>> wurde.
>>>
>>> Vielen Dank im Voraus!
>>>
>>>
>>> _______________________________________________
>>> TYPO3-german mailing list
>>> TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list