Nextras ORM, mazání potomků ve vazbě
- Sitole
- Člen | 39
Ahoj,
plácám se tady s tím už celý den a nějak netuším, kde dělám chybu.
Mám entity vlákna a příspěvků ve vlákně viz:
/**
* @property int $id {primary}
* @property string $content
* @property \DateTimeImmutable $inserted {default now}
* @property User $author {m:1 User, oneSided=true}
* @property ForumThread $thread {m:1 ForumThread::$posts}
*/
class ForumPost extends BaseEntity
{
}
/**
* @property int $id {primary}
* @property string $name
* @property \DateTimeImmutable $inserted {default now}
* @property User $author {m:1 User, oneSided=true}
* @property ForumForum $forum {m:1 ForumForum, oneSided=true}
*
* @property OneHasMany|ForumPost[] $posts {1:m ForumPost::$thread}
*/
class ForumThread extends BaseEntity
{
}
Následně si v aplikaci vytáhnu vlákno a chtěl bych jej smazat včetně
příspěvků, ale po použití
$this->forumThreadsRepository->remove($thread, true);
Vyhodí aplikace chybu „Cannot remove
App\Models\Database\ORM\ForumThreads\ForumThread::$id=11 because
App\Models\Database\ORM\ForumPosts\ForumPost::$thread cannot be a null.“
Hlášku chápu, ale myslel jsem, že právě druhý parameter u metody remove
má zařídit smazání potomků. Samo sebou bych mohl vytáhnout všechny
příspěvky podle vlákna a smazat je, ale to mi přijde trošku
zbytečné.
Co dělám špatně? Předem děkuji.
- sucho
- Člen | 57
A máš na cudzom kľúči ON DELETE CASCADE
?
http://www.mysqltutorial.org/…ete-cascade/
Editoval sucho (4. 12. 2018 9:30)
- Jan Tvrdík
- Nette guru | 2595
@Sitole Ten parameter říká, že se použijí nastavené kaskády, ale první je potřeba je nastavit, viz https://nextras.org/…elationships#…