symfony表单与页面实现技巧
框架(架构)  /  管理员 发布于 7年前   296
本文实例讲述了symfony表单与页面实现技巧。分享给大家供大家参考。具体如下: symfony开发很简洁,但是功能的数量仍然很缺乏。现在是时候进行一些askeet站点与用户之间的交互了。而HTML交互的根本--除了起链接--就是表单了。 这里我们的目标是允许用户登陆,并在主页的问题列表中进行翻阅。这对于开发而言是很快的,并且可以让我们回忆起前面的内容。 登陆表单 在测试数据中存在用户,但是程序却没有办法来进行验证。下面我们要在程序的每一个页面添加一个登陆表单。打开全局的布局文件askeet/apps/frontend/templates/layout.php,并且在到about的连接之前添加下面的代码行: 当前的布局将这些链接放在web调试工具栏之后。要看到这些链接,点击'Sf'图标折叠起调试工具栏就可以看到了。 现在需要创建user模块。而question模块是在第二天生成的,这一次我们只是叫symfony来创建模块框架,而我们将会自己来编写这些代码。 这个框架包含一个默认的index动作与一个indexSuccess.php模板。删除他们,因为我们并不需要他们。 创建user/login动作 public function executeLogin() 这个动作将referer保存在请求属性中。然后这个属性可为模块所用存放在一个隐藏区域中,从而这个表单的目的动作可以在成功登陆后重定向到原始的referer。 语句return sfView::SUCCESS将动作执行结果传递到loginSuccess.php模块。这条语句是在一个不包含返回语句的动作中实现的,这也就是一个动作的默认模块被称之为actionnameSuccess.php的原因。 在动作上开始更多的工作之前,我们先来看一下模块。 创建loginSuccess.php模块 web上的许多人机交互使用表单,而Symfony通过提供一个form帮助器集合来组织表单的创建与管理。 在askeet/apps/frontend/modules/user/templates/目录下,创建下面的loginSuccess.php模块:
{
$this->getRequest()->setAttribute('referer', $this->getRequest()->getReferer());
return sfView::SUCCESS;
}