私は2つのテーブルを持っています。2 つのテーブル (user
とuser_education
) のフィールドをレンダリングしています。1 人のユーザーが複数のレコード (教育の詳細) を持つことができます。ユーザーの情報を編集するために、特定の の詳細の 1 つのレコードのみを取得できますuser_education
。user_education
特定のユーザーのテーブルの複数のレコードを取得するにはどうすればよいですか? と呼ばれる単一のページで両方のテーブルのフィールドをレンダリングしていますeditSuccess()
。
以下に示すように、両方の形式のオブジェクトを作成しました
foreach ($user->getUserEducations() as $edu)
{
$education = $edu;
break;
}
$this->form = new stFormProfile($user);
$this->form1 = new UserEducationForm($education);
上記のコード$education
では、user_education
. user_education
オブジェクトの配列( $user->getUserEducations()
) を渡す必要があります。ただし、オブジェクトの配列は受け入れられません。
以下に示すように値をバインドしています。
$this->form1->bind($request->getParameter('user_education'),
$request->getFiles('user_education'));
$this->form->bind($request->getParameter('profile'), $request->getFiles('profile'));
以下のコードを使用して、更新された値を保存しています。
$this->form->save();
$this->form1->save();
ユーザー テーブルのフィールドが更新されています。しかし、user_education
テーブル用ではありません。_csrf_token
[必須]エラーが発生し
ます。
またUserEducationForm.class.php
、最初に指定したデータベース スキーマを使用して、Symfony 自体によって作成されます。user_education
そのスキーマでは、テーブルの主キーを指定しませんでした。そのため、Symfony 自体id
が主キーで呼び出される列を作成しました。これは何か影響していますか?
これらのフィールドを以下のようにレンダリングしています
print $form["username"]->renderLabel()
print $form["username"]->render()
print $form["email"]->renderLabel()
print $form["email"]->render()
print $form["firstname"]->renderLabel()
print $form["firstname"]->render()
print $form["lastname"]->renderLabel()
print $form["lastname"]->render()
print $form['skillset']->renderLabel()
print $form['skillset']->render()
print $form['years_of_experience']->renderLabel()
print $form['years_of_experience']->render()
学歴の詳細
print $form1['college_name']->renderLabel()
print $form1['college_name']->render()
print $form1['coursename']->renderLabel()
print $form1['coursename']->render()
print $form1['percentage']->renderLabel()
Education details テーブルの複数行をレンダリングする必要があります (foreach を使用)。