我在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:
怎么做?谢谢你的帮助!
答案 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,它完美地解释了如何使用它。