DOCTRINE 1.2 // SYMFONY 1.4
嗨!
在我的网站上,我正在使用sfGuardPlugin
的表与其他表格来设置闹钟系统,应用程序会收到用户的邮件以获取邮件并发送电子邮件,
现在我还需要一个发送短信的电话号码!
我需要的只是phone
'表格中的一个额外字段(“sfGuardUser
”),
我一直想知道我是否可以用“inheritence
”来做这件事,但我被困在那种类型中(简单,具体?...)
任何想法?
答案 0 :(得分:2)
为什么不使用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,你必须修改插件schema.yml,添加你的字段并重建所有类。我建议你反对。 ; - )
答案 1 :(得分:0)
我不确定您是否只是在数据库/模型中创建字段时遇到问题。如果是这种情况:
例如 - 如果要在schema.yml文件中定义表,基本上可以这样做:
sfGuardUser:
columns:
somecolumn:
type: string
只需指定sfGuardUser,因为它是一个新的,不存在的类并添加您的字段。另一种(在某些情况下更好)方式是为配置文件字段创建一个新表并使用sfGuardUser id作为外键。
如果问题出在其他方面,请告诉我。
答案 2 :(得分:0)
我通过使用继承解决了这个问题:输入simple和addind my field!不管怎么说,还是要谢谢你 !
Myuser:
inheritance:
extends: sfGuardUser
type: simple
columns:
gsm:
type: string(30)
这样字段“gsm”将出现在sfGuardUser表中并由插件自动管理(我不必使用MyUser)
我现在可以通过使用:来自sfGuardUser对象的getGsm()....来获取电话号码! 谢谢大家!