0

私は2つのテーブルを持っています。2 つのテーブル (useruser_education) のフィールドをレンダリングしています。1 人のユーザーが複数のレコード (教育の詳細) を持つことができます。ユーザーの情報を編集するために、特定の の詳細の 1 つのレコードのみを取得できますuser_educationuser_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 を使用)。

4

1 に答える 1

1

_csrf_token フィールドもレンダリングする必要があります

print $form['_csrf_token'] 

print $form1['_csrf_token'] 
于 2011-04-20T10:30:05.997 に答える