扩展sfGuardUser:添加“电话号码”;字段


Extend sfGuardUser : adding "phone number" field

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对象!谢谢大家!