Próbuję wraz ze współpracownikiem zmusić ten bahevior do kasowania rekordów zależnych w relacji 1-n, gdzie n to obiekty Photo.
Niestety, Doctrine sobie z tym nie radzi. Albo w ogóle nie oznacza Photo jako skasowane, albo błędnie wywołuje zapytanie updatujące te wiersze:
UPDATE photo SET deleted_at = '2010-03-29 13:56:51', updated_at = '2010-03-29 13:56:51' WHERE id = '1'
Gdzie zamiast id powinno być gallery_id (ma to wskazane w schama.yml)
Czy ktoś zna rozwiązane, najlepiej Doctrine-way - a już w ogóle najlepiej patcha, bo googlam googlam i nic sensownego nie znajduję, na ircach też na razie cisza. Nadmienię, że próbowałem wszystkich chyba kombinacji w schemie. DQL_CALLBACK jest ustawione.
Symfony 1.4.3 i Doctrine 1.2
schema.yml
Kod
Gallery:
actAs:
Timestampable:
SoftDelete:
columns:
name:
type: string(255)
relations:
Photo:
local: id
foreign: gallery_id
foreignType: many
cascade: [delete]
Photo:
actAs:
Timestampable:
SoftDelete:
columns:
name:
type: string(255)
gallery_id:
type: integer
relations:
Gallery:
onDelete: CASCADE
local: gallery_id
foreign: id
foreignType: one
actAs:
Timestampable:
SoftDelete:
columns:
name:
type: string(255)
relations:
Photo:
local: id
foreign: gallery_id
foreignType: many
cascade: [delete]
Photo:
actAs:
Timestampable:
SoftDelete:
columns:
name:
type: string(255)
gallery_id:
type: integer
relations:
Gallery:
onDelete: CASCADE
local: gallery_id
foreign: id
foreignType: one
Pozdrawiam
--edit - chyba fixed, ale jeszcze sprawdzam, potem dam rozwiązanie.