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 
ProductAttributea 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í.