我在动作中定义了一个表单,并将其传递给模板。保存时无法设置默认值。你能告诉我我做错了什么吗?
在modules \ question \ actions中:
public function executeNew(sfWebRequest $request)
{
$this->form = new questionForm();
if ($this->getRequest()->getMethod() == sfRequest::POST)
{
// create question
$user = $this->getUser()->getGuardUser()->getId();
$question = new Question();
$question->setQuestionTitle($this->getRequestParameter('question_title'));
$question->setQuestionBody($this->getRequestParameter('question_body'));
$question->setUserId($user);
$question->save();
$question->addTagsForUser($this->getRequestParameter('tag'), $user);
return $this->redirect('question/index');
}
//set current user as default
$this->form->setDefault('user_id',$this->getUser()->getGuardUser()->getId());
}
在\ modules \ question \ templates中:
<?php echo $form->renderFormTag('question/new') ?>
<table>
<?php echo $form['question_title']->renderRow(array('size' => 40), 'Question title:') ?>
<?php echo $form['question_body']->renderRow(array('cols' => 40, 'rows' => 10), 'Description:') ?>
<?php echo input_auto_complete_tag('tag', '', '@tag_autocomplete', 'autocomplete=off', 'use_style=true') ?>
<tr>
<td colspan="2">
<input type="submit" value="ask it" />
</td>
</tr>
</table>
</form>
答案 0 :(得分:0)
两种选择之一:
OR
通常的做法是选项#1,因为它会导致表单配置和操作之间松散耦合。