Bạn không thể thực hiện điều đó bằng chú thích prePersist trong thực thể của bạn. Vấn đề với cách tiếp cận của bạn là bạn không thể truy cập vào thực thểManager bên trong mô hình của bạn nhưng bạn sẽ cần điều đó để bảo anh ta không kiên trì sự ghen tị của bạn.
Bạn có thể sử dụng một người biết lắng nghe sự kiện như được giải thích trong tài liệu thuyết: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners
Sau đó bạn sẽ lắng nghe các sự kiện prePersist, xem nếu bất kỳ thực thể của các loại trong câu hỏi yêu cầu để được tiếp tục tồn và xem nếu tình trạng của bạn là thật. Nếu vậy, bạn có thể nói với thực thểManager để tách thực thể.
NHƯNG Tôi đoán bạn có thể làm điều đó đơn giản hơn nhiều bằng cách thiết lập các nội dung để notnull và chuyển nội dung đến null nếu chiều dài là < 1. Đảm bảo để tồn tại các đơn vị đúng là một phần của logic tên miền của bạn và tôi sẽ không làm điều này trong chính tổ chức hoặc một số người nghe sự kiện. Nếu bạn có nhiều người nghe như vậy và điều kiện, bạn kết thúc với nhiều khó khăn ma thuật không ai biết về.
Bên cạnh cách tiếp cận ở trên, bạn có thể triển khai phương thức hợp lệ() và kiểm tra xem các điều kiện nhất định có được đáp ứng hay không. Logic miền của bạn sẽ chỉ tồn tại thực thể nếu hợp lệ() là đúng. Một cách tiếp cận tốt hơn nữa là sử dụng trình xác nhận hợp lệ của symfony2 để xác nhận thực thể của bạn và sau đó hành động phù hợp.
Cảm ơn bạn, tôi sẽ cố gắng tạo trình xử lý sự kiện. – user1501227
Quyền truy cập vào tài liệu bị hạn chế, vui lòng kiểm tra liên kết. Tôi nhận được "Bạn không có quyền truy cập vào phiên bản này." –
Cảm ơn bạn đã gợi ý. Liên kết mới là http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#implementing-event-listeners. Tôi đã chỉnh sửa câu trả lời gốc cho phù hợp! – Sgoettschkes