来吧,让我们处理表单的提交!由于我们提交回原来的路由和控制器,所以我们需要处理post请求。
KU案例2之17 使用更多字段:email和确认密码
我们需要在表单中添加确认密码,但现在我们只有一个密码框,那么我们还需要一个密码框,我们只需要使用repeated字段类型即可。顺便更改email字段为email类型:
KU案例2之16 表单渲染
创建一个Html的form标签,当提交数据正确,则返回我们上一节创建的路由和控制器。可以使用最简单的Twig的form_widget函数,一次性渲染完成表单。把form变量传给他,还要添加一个提交按钮:
KU案例2之15 注册表单
让我们的网站增加一个注册表单。去喝点咖啡吧,因为我们马上就要学习一些表单和验证的强大知识。 read more
KU案例2之14 用户序列化
这里有一个问题,我不得不打扰一下,我希望我们先考虑一点点序列化问题。当我们用户登录后,会得到一个User实体,这个User实体会存储在session中。为此,为了节省资源,应该让php序列化User对象并储存在session中,当用户请求页面,再将该序列化字符串反解成User对象。
KU案例2之13UserProvider:自定义的方式加载Security用户
我们的目的是让用户可以使用用户名或者email登录。如果我们能够让Security系统使用我们闪亮牛逼的findOneByUsernameOrEmail方法查找用户并登录,那么今天的任务就完成了。
KU案例2之12 Doctrine QueryBuilder
如果我们想通过匹配email或者username字段来找到一个用户。我们会在UserRepository里增加一个findOneByUsernameOrEmail方法:
KU案例2之11Repository Security
现在,让我们的用户有一个电子邮件的字段,让它能够使用邮件或者用户登录。
KU案例2之10给数据库中的用户添加角色
很多时候,所有的用户只能得到一个角色:ROLE_USER,这是因为我们的User entity中的getRoles()的默认返回值所导致。
KU案例2之09保存用户
既然错误已经不存在了,就尝试一下登录吧!等等,我们的用户表还是空的呢。所以不管我们怎们登录都会看到一个错误的密码信息。