使用相关记录呈现和更新Symfony表单?

时间:2011-04-19 14:51:05

标签: symfony1 propel symfony-forms

我有两张桌子。我正在渲染两个表(useruser_education)的字段。一个用户可以拥有多条记录(教育详细信息)。要编辑用户的信息,我只能检索特定user_education个详细信息的一条记录。如何为特定用户检索user_education表的多个记录?我正在单页中的两个表中呈现字段editSuccess()

我创建了两种形式的对象,如下所示

foreach ($user->getUserEducations() as $edu)
{
     $education =  $edu;
     break;
}


$this->form = new stFormProfile($user);
$this->form1 = new UserEducationForm($education);

在上面的代码中,$educationuser_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()  

我需要渲染多行教育详细信息表(使用foreach)。

1 个答案:

答案 0 :(得分:1)

你需要渲染_csrf_token字段

print $form['_csrf_token'] 

print $form1['_csrf_token']