形式有两个类和关系

时间:2011-06-25 16:02:59

标签: php symfony1 doctrine symfony-1.4 doctrine-1.2

我在Doctrine 1.2中:

User:
  columns:
    login:        { type: string(255), notnull: true }
    password:     { type: string(255), notnull: true }

Student:
  columns:
    user_id:         { type: integer, notnull: true }
    school_name:     { type: string(255) }
    school_year:     { type: integer(4) }
  relations:
    User:  { onDelete: CASCADE, local: user_id, foreign: id }

Teacher:
  columns:
    user_id:   { type: integer, notnull: true }
    city:      { type: string(255) }
    street:    { type: string(255) }
  relations:
    User:  { onDelete: CASCADE, local: user_id, foreign: id }

如果我打开 localhost / user / new 的形式:

login:
password:

这很好。

如果我打开 localhost / student / new 的形式:

user_id
school_name:
school_year:

但我想:

login:
password:
school_name:
school_year:

怎么做?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您必须使用名为 embedRelation 的sfForm方法。您必须创建一个扩展 userForm 的新表单,并在(在configure方法中)设置与Student的嵌入关系。

例如:

class UserStudentForm extends UserForm
{
  public function configure()
  {
    // Existing Student forms
    $this->embedRelation('Student');

    $this->widgetSchema->setNameFormat('user_student[%s]');
  }
}

检查this example,它完美地解释了如何使用它。