DOCTRINE 1.2//SYMFONY 1.4
你好!在我的网站中,我使用sfGuardPlugin
的表格和其他表格来设置报警系统,应用程序获取用户的邮件以获取邮件并发送邮件,现在我还需要一个发送短信的电话号码!所有我需要的是一个额外的字段("phone
")在sfGuardUser
'表,我一直想知道我是否可以用"inheritence
"做到这一点,但我被困在类型(简单,具体?…)任何想法?
为什么不使用sf_guard_user_profile表添加自定义字段?这是推荐的方法。
sf_guard_user_profile:
_attributes: { phpName: sfGuardUserProfile }
id: ~
user_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
phone: varchar(20)
那么你可以使用:
$this->getUser()->getGuardUser()->getProfile()->getPhone()
或
$this->getUser()->getProfile()->getPhone()
无论如何,如果你想要/需要"扩展"sfGuardUser,你必须修改插件模式。Yml,添加字段并重新构建所有类。我劝你不要。: -)
我不确定您是否在数据库/模型中简单地创建字段。如果是这种情况:
例如-如果你在模式中定义你的表。Yml文件,你可以这样做:
sfGuardUser:
columns:
somecolumn:
type: string
只需指定sfGuardUser,因为它是一个新的,不存在的类,并添加您的字段。另一种方法(在某些情况下更好)是为配置文件字段创建一个新表,并使用sfGuardUser id作为外键。
如果是别的问题,请告诉我。
我已经通过使用继承:类型简单和添加我的字段解决了这个问题!谢谢你!
Myuser:
inheritance:
extends: sfGuardUser
type: simple
columns:
gsm:
type: string(30)
这样,字段"gsm"将出现在sfGuardUser表中,并由插件自动管理(我将不必使用MyUser)
我现在可以得到电话号码通过使用:getsm() ....从sfGuardUser对象!谢谢大家!