私のスキーマ内の単一のテーブルを使用して埋め込みフォームを動的に追加しようとしています。フォームを動的に埋め込む
、私は動的に追加しようとしていますどのような私は、このことにより、意味、私のsfGuardUserProfile
表に、私は、ユーザーが何であるかを決定するために、多数のフィールドを持っている、すなわちpractice_id、nurse_id、このことを念頭に置いて、だから、
をpatient_id
看護師は慣習に従う。
私はsfGuardUser
を拡張sfGuardUserAdminForm
を拡張練習フォームを、持っている、これは私は、ユーザー名、sfGuardUser
テーブルに格納されたパスワードなどを取得することができます。
私のpracticeForm
には、sfGuardUserProfile
テーブルから必要なフィールドを表示するpracticeProfileform
が埋め込まれています。私は誰もが従っていることを願って...
これはうまく動作し、両方のテーブルのフィールドが表示されます。
今、私は今、看護師を埋め込む方法がわかりません。私は、実践と看護師が同じテーブルに救われるため、これをどうやって行うのかが特に不明です。
practiceForm
class Practiceform extends sfGuardUserAdminForm
{
public function configure()
{
$form = new PracticeProfileForm($this->getObject()->getProfile());
$this->embedForm('profile', $form);
}
}
私はまた再びsfGuardUser
を拡張nurseFormを持って、私は必要なフィールドを取得するためにsfGuardUserProfile
を拡張nurseProfileFormを埋め込みます。
nurseForm
class dentistForm extends sfGuardUserAdminForm
{
public function configure()
{
$profileForm = new nurseProfileForm($this->object->Profile);
$this->embedForm('profile', $profileForm);
{
}
次のように私のschema.ymlのは、次のとおりです。
sfGuardUserProfile:
actAs:
Timestampable: ~
columns:
user_id:
type: integer(11)
notnull: true
default:
unsigned: false
primary: false
unique: false
autoincrement: false
email_new:
type: string(255)
unique: true
firstname:
type: string(255)
lastname:
type: string(255)
practice_id:
type: integer(11)
nurse_name:
type: varchar(255)
practice_name:
type: varchar(255)
practice_type:
type: varchar(255)
validate_at:
type: timestamp
validate:
type: string(33)
relations:
User:
class: sfGuardUser
foreign: id
local: user_id
type: one
onDelete: cascade
foreignType: one
foreignAlias: Profile
Practice:
class: sfGuardUserProfile
foreign: id
local: practice_id
type: one
onDelete: cascade
indexes:
validate:
fields: [validate]
は、私は現在、スキーマ/フォームで動的にこれらの看護師を加える達成するための簡単な方法はありますDoctrine/SF1.4を使用していますか?
Manayおかげ