В каждом примере, который я видел и в своем опыте кодирования с Doctrine2, правильный способ создания объекта из данных $ _POST - это индивидуальное задание каждого свойства с использованием установщиков в классах сущностей.
fromArray (), конечно, кажется удобным, но, зная, как Doctrine2 обрабатывает ассоциации, я не мог понять, как это вас уводит очень далеко.
Что касается хорошего учебника по CRUD для Doctrine2, вам может понравиться пример главы из книги "Легкие PHP-сайты с Zend Framework". Сама книга посвящена ZF, а не CodeIgniter, но в главе с примерами, посвященной Zend, очень мало. Однако вы, вероятно, предпочтете держаться подальше от репозитория образцов z2d2.
Помимо этого, на этом сайте есть несколько полезных вопросов и ответов по Doctrine2, которые относятся к контексту CRUD. Продолжайте публикацию, и я уверен, что я или кто-то из других здесь может помочь.