2014-09-16 1 views
1

У меня есть имя столбца «удалено» в базе данных сторонних разработчиков (что я не могу изменить). Когда я генерирую объектную модель с помощью propel, она генерирует базовый класс с свойством «$ deleted» для собственного использования. Затем он добавляет мой «удаленный» столбец как свойство, также называемое «$ deleted». При попытке выполнить запрос он жалуется на «Не удается обновить Base \ myClass :: $ deleted». Как я могу остановить продвижение от создания базового объекта со свойством, которое совпадает с именем столбца базы данных? Есть ли способ сделать это в schema.xml? Я попытался использовать атрибут phpNamingMethod, но это только изменяет имя метода, а не переменную-член.Propel ORM с именем столбца «deleted»

Это генерируется Propel на каждом базовом объекте:

/** 
    * attribute to determine whether this object has been deleted. 
    * @var boolean 
    */ 
    protected $deleted = false; 

Это генерируется из моего файла schema.xml:

/** 
    * The value for the deleted field. 
    * @var  int 
    */ 
    protected $deleted; 

ответ

1

Просто определить другой phpName.

<column name="deleted" phpName="otherDeleteName" type="boolean" /> 
+0

Я изменил имя phpName на "entityDeleted", но он по-прежнему вызывает переменную-член $ deleted. Я думаю, что это имя столбца используется как переменная-член. – Asagohan

+0

Да, действительно. Похоже, на данный момент это невозможно. Это нелегкое решение. –