从这个页面:
main_dev.php/player/new
到(当我点击提交时):
main_dev.php/player/edit/player_id/(no id)
如果我在这里放一个 id 它显示得很好。
当我单击提交按钮(以某种方式保存)但显示以下内容时:
404 | 未找到 | sfError404Exception
对象播放器不存在()。
这是我的基本形式:
$this->setWidgets(array(
'player_id' => new sfWidgetFormInputHidden(), //primary key auto increment()
'player_name' => new sfWidgetFormInputText(),
'player_gold' => new sfWidgetFormInputText(),
'chara_id' => new sfWidgetFormInputText(),
'open_social_id' => new sfWidgetFormInputText(),
));
我怀疑这里的问题是 player_id 没有显示并且是自动递增的。这意味着当我提交表单时 player_id 留空,并且由于 symfony 无法找到从哪里获取 id 以显示记录的引用,它会变为 404,有什么解决方法吗?
我的 action.class 是默认的(我生成它时的实例)所以我认为这不是问题
这是保存表单的代码:
protected function processForm(sfWebRequest $request, sfForm $form)
{
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{
$Player = $form->save();
$this->redirect('player/edit?player_id='.$Player->getPlayerId());
}
}
当然对于新的页面控制器:
public function executeNew(sfWebRequest $request)
{
$this->form = new PlayerForm();
}