Oznámení
Lean Mapper – smazání položky ze seznamu (z proměnné) typu m:belongsToMany
před 6 lety
- svezij
- Člen | 69
Ahojte, mám entitu výrobku obsahující jako jednu z proměnných seznamu atributů:
/**
* @property int $id
* ...
* @property ProductAttribute[] $attributes m:belongsToMany(:product_attributes)
* ...
*/
class Product extends \LeanMapper\Entity
{
}
Dále mám prezenter s formulářem a metodu pro obsluhu odeslaného
formuláře. Procházím atributy výrobku z formuláře a v seznamu atributů
entity Product, tedy v Product::$attributes
, hledám daný
atribut.
- Je-li ve formuláři vyplněná hodnota atributu a v seznamu atributů jsem tento atribut našel, změním hodnotu a zavolám persist pro uložení
- Je-li ve formuláři vyplněná hodnota atributu a v seznamu atributů jsem
atribut nenašel, vytvořím nový objekt typu
ProductAttribute
a zavolám persist pro uložení - Není-li ve formuláři vyplněná hodnota atributu a v seznamu atributů jsem atribut nenašel, nedělám nic
- A není-li ve formuláři hodnota a v seznamu jsem atribut našel,
zavolám
$this->productAttributeRepository->delete($foundAttribute)
V posledním bodě pak vzniká problém. Tzn. chci-li smazat atribut výrobku, laděnka vyhodí výjimku:
It is not allowed to create entity from detached instance of LeanMapper\Row.
Atribut se v pořádku smaže, ale místo přesměrování na seznam výrobků se mi dostane výjimky, a to si samozřejmě nepřeji. Měl bych po mazání něco udělat? Mockrát děkuji.
před 6 lety
- svezij
- Člen | 69
Znovu Vás zdravím. Po 15 dnech jsem opět narazil na tentýž problém
při mazání položky typu m:belongsToMany, a vzpomněl jsem si, že jsem se tu
už ptal. Tentokrát mám Entitu dopravce a dopravci přiděluji regiony
s nějakými dalšími hodnotami. Má-li dopravce přidělený region a já jej
chci smazat, normálně se přes
$this->carrierRegionRepository->delete($foundRegion)
smaže,
ale místo přesměrování vyhodí výjimku, kterou jsem uvedl výše. Opravdu
nikdo netušíte, čím by to mohlo být? Chcete nějaké upřesňující
informace? Ještě jednou moc děkuji.
před 6 lety
- Casper
- Člen | 253
Tahle výjimka nemá nic společného s mazáním entity (které ti koneckonců funguje). Píšeš, že výjimku dostaneš místo přesměrování, nicméně tahle výjimka vzniká v konstruktoru entity, což s přesměrováním také nesouvisí. Kdyžtak sem dej ten kód, kde k výjimce dochází.