当前位置: 首页 > news >正文

网站首页ui中国科技成就手抄报

网站首页ui,中国科技成就手抄报,搜狗引擎,安卓app软件定制创建一个注册表单是非常容易的 - 它事实上意味着#xff0c;你只需要创建一个表单#xff0c;表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它。受欢迎的FOSUserBundle 提供了一个注册表单#xff0c;重置密码表单和其他用户管理功能。如果你先前没有一个…创建一个注册表单是非常容易的 - 它事实上意味着你只需要创建一个表单表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它。受欢迎的FOSUserBundle 提供了一个注册表单重置密码表单和其他用户管理功能。如果你先前没有一个User实体和能工作的登录系统你要先从怎样从数据库加载安全用户开始。你的User实体至少应该有以下字段username他是用来登录的除非你想用email来替代你的用户(在那种情况下这个字段就不是必要的了)。email这是一条不错的信息很值得收集。您也可以允许用户通过email登录。password编译的密码plainPassword这个字段不会被持久化(注意没有上面的ORM\Column)。他将临时存储注册表单的明文密码。此字段可以被验证然后被用于password字段的填充。添加了一些验证,你的类可能看起来像这样:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495// src/AppBundle/Entity/User.phpnamespace AppBundle\Entity;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;use Symfony\Component\Security\Core\User\UserInterface;/*** ORM\Entity* UniqueEntity(fieldsemail, messageEmail already taken)* UniqueEntity(fieldsusername, messageUsername already taken)*/class User implements UserInterface{/*** ORM\Id* ORM\Column(typeinteger)* ORM\GeneratedValue(strategyAUTO)*/private $id;/*** ORM\Column(typestring, length255, uniquetrue)* Assert\NotBlank()* Assert\Email()*/private $email;/*** ORM\Column(typestring, length255, uniquetrue)* Assert\NotBlank()*/private $username;/*** Assert\NotBlank()* Assert\Length(max4096)*/private $plainPassword;/*** The below length depends on the algorithm you use for encoding* the password, but this works well with bcrypt.** ORM\Column(typestring, length64)*/private $password;// other properties and methodspublic function getEmail(){return $this-email;}public function setEmail($email){$this-email $email;}public function getUsername(){return $this-username;}public function setUsername($username){$this-username $username;}public function getPlainPassword(){return $this-plainPassword;}public function setPlainPassword($password){$this-plainPassword $password;}public function setPassword($password){$this-password $password;}public function getSalt(){// The bcrypt algorithm doesnt require a separate salt.// You *may* need a real salt if you choose a different encoder.return null;}// other methods, including security methods like getRoles()}UserInterface要求要有一些其他的方法并且你的security.yml文件需要被正确配置来让User实体工作。更多完整的例子参见实体提供器文章。为什么限制4096密码 ¶注意plainPassword字段的最大长度是4096字符。为了安全起见(CVE-2013-5750)当编译它时Symfony限制明文密码长度到4096字符。添加此约束来确保如果有人尝试了一个超长的密码你的表单应该提示一个验证错误。你需要添加这个约束到你应用程序任何需要用户提交明文密码的地方(如修改密码表单)。唯一不需要你担心的就是你的登录表单因为symfony安全组件会替你处理。为实体创建一个表单 ¶下一步给User实体创建表单123456789101112131415161718192021222324252627282930313233// src/AppBundle/Form/UserType.phpnamespace AppBundle\Form;use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\OptionsResolver\OptionsResolver;use Symfony\Component\Form\Extension\Core\Type\EmailType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Component\Form\Extension\Core\Type\RepeatedType;use Symfony\Component\Form\Extension\Core\Type\PasswordType;class UserType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options){$builder-add(email, EmailType::class)-add(username, TextType::class)-add(plainPassword, RepeatedType::class, array(type PasswordType::class,first_options array(label Password),second_options array(label Repeat Password),));}public function configureOptions(OptionsResolver $resolver){$resolver-setDefaults(array(data_class AppBundle\Entity\User,));}}这里有两个字段email, username 和 plainPassword(重复确认输入的密码)。探索更多关于表单组件的事情,请阅读表单指南。处理表单提交 ¶下一步你需要一个控制器去处理表单渲染和提交。如果表单被提交控制器执行验证并保存数据到数据库12345678910111213141516171819202122232425262728293031323334353637383940414243444546// src/AppBundle/Controller/RegistrationController.phpnamespace AppBundle\Controller;use AppBundle\Form\UserType;use AppBundle\Entity\User;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;use Symfony\Bundle\FrameworkBundle\Controller\Controller;use Symfony\Component\HttpFoundation\Request;class RegistrationController extends Controller{/*** Route(/register, nameuser_registration)*/public function registerAction(Request $request){// 1) build the form$user new User();$form $this-createForm(UserType::class, $user);// 2) handle the submit (will only happen on POST)$form-handleRequest($request);if ($form-isSubmitted() $form-isValid()) {// 3) Encode the password (you could also do this via Doctrine listener)$password $this-get(security.password_encoder)-encodePassword($user, $user-getPlainPassword());$user-setPassword($password);// 4) save the User!$em $this-getDoctrine()-getManager();$em-persist($user);$em-flush();// ... do any other work - like sending them an email, etc// maybe set a flash success message for the userreturn $this-redirectToRoute(replace_with_some_route);}return $this-render(registration/register.html.twig,array(form $form-createView()));}}在安全配置中配置上面步骤3的编码器来定义用于编译密码的算法1234# app/config/security.ymlsecurity:encoders:AppBundle\Entity\User:bcrypt1234567891011xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:srvhttp://symfony.com/schema/dic/servicesxsi:schemaLocationhttp://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsdbcrypt123456// app/config/security.php$container-loadFromExtension(security, array(encoders array(AppBundle\Entity\User bcrypt,),));这个案例我们推荐使用bcrypt 算法。了解更多关于如何编码用户密码的细节请看安全章节。如果您决定不使用注释方式的路由(如上)那么你需要创建一个这个控制器的路由1234# app/config/routing.ymluser_registration:path: /registerdefaults:{ _controller:AppBundle:Registration:register }12345678910xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsdAppBundle:Registration:register12345678910// app/config/routing.phpuse Symfony\Component\Routing\RouteCollection;use Symfony\Component\Routing\Route;$collection new RouteCollection();$collection-add(user_registration, new Route(/register, array(_controller AppBundle:Registration:register,)));return $collection;下一步创建模板12345678910{# app/Resources/views/registration/register.html.twig #}{{ form_start(form) }}{{ form_row(form.username) }}{{ form_row(form.email) }}{{ form_row(form.plainPassword.first) }}{{ form_row(form.plainPassword.second) }}Register!{{ form_end(form) }}1234567891011?php echo $view[form]-start($form) ??php echo $view[form]-row($form[username]) ??php echo $view[form]-row($form[email]) ??php echo $view[form]-row($form[plainPassword][first]) ??php echo $view[form]-row($form[plainPassword][second]) ?Register!?php echo $view[form]-end($form) ?参见如何自定义表单渲染里面有更多细节。更新你的数据库结构 ¶如果你在这个教程中已经更新了User实体你必须要使用下面的命令去更新数据库结构1$ php bin/console doctrine:schema:update --force就是这样来到/register来尝试一下吧注册表单只有Email(没有 Username) ¶如果你想要你的用户通过email登录并不需要用户名那么你可以从你的User实体中彻底移除他。相反让getUsername()返回email属性1234567891011121314// src/AppBundle/Entity/User.php// ...class User implements UserInterface{// ...public function getUsername(){return $this-email;}// ...}下一步只更改你security.yml文件的providers 部分以便Symfony知道如何去通过email属性加载你的用户来登录。参见如何自定义表单渲染。添加一个“打上勾”的Checkbox ¶有时你想要一个“你接受这个条款和声明吗”的Checkbox出现在你的注册表单。唯一窍门让你要去添加这个字段到你的表单中而你永远不需要添加多余的termsAccepted属性到你的User实体。要做到这一点要添加一个termsAccepted字段到你的表单但设置它的 mapped 选项为false:1234567891011121314151617181920// src/AppBundle/Form/UserType.php// ...use Symfony\Component\Validator\Constraints\IsTrue;use Symfony\Component\Form\Extension\Core\Type\CheckboxType;use Symfony\Component\Form\Extension\Core\Type\EmailType;class UserType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options){$builder-add(email, EmailType::class);// ...-add(termsAccepted, CheckboxType::class, array(mapped false,constraints new IsTrue(),)));}}constraints配置也被使用了它允许我们添加验证尽管没有User中没有termsAccepted属性。
http://www.pierceye.com/news/480913/

相关文章:

  • 网站建设评语商城微发布官网
  • 仿同程网 连锁酒店 网站模板系统模板html
  • 推广网app下载seo课程
  • 有效方法的小企业网站建设域名怎么拿来做网站
  • 网站版面如何布局做一个企业的网站怎么做的
  • 天门市城市建设管理局网站大连专业网页设计
  • 百度网站收录提交入口全攻略网站支付体现功能怎么做
  • 网站更改文章标题主流跨境电商平台有哪些
  • vue做直播网站上海最繁华的五个区
  • 做网站和微信小程序电子商务网站建设与管理的背景
  • 做网站国内阿里云虚拟主机多少钱东莞常平中学高中部
  • 用.net做购物网站灵山建设局网站
  • 烟台网站设计制作公司电话python购物网站开发流程
  • 医疗网站怎么做seo怎样通过网址浏览自己做的网站
  • 湖北现代城市建设集团网站wordpress用户头像插件
  • 徐州双语网站制作响应式网站开发pdf
  • 怎么做建设网站公司创建一个网站多少钱
  • 好看的扁平化网站wordpress插件编写
  • 深圳网站设计模板ps可以做网站动态图
  • 微信网站制作入门网站开发实施方案进度
  • 网站用户界面设计国内网站建设最好公司
  • 运城做网站费用高吗高端模板建站
  • 凡客诚品网站设计合肥网红打卡地
  • 淘宝网站代理怎么做的广西送变电建设公司铁塔厂网站
  • 自媒体网站开发网站的推广方式包括
  • 教育做的比较好的网站有哪些网站的建设及维护
  • dw设计做网站案例建设网站杭州
  • 做网站认证对网站有什么好处广西网站建设开发团队
  • 建一个网站需要哪些知识无锡大型互联网公司
  • 餐饮公司 网站建设做网站一年大概的盈利