Php 主页上的部分用户注册(索引)
我将Symfony2 2.6.4与FOS用户包主机一起使用,我很难将部分注册从主页传递到注册页面 目标 我希望用户开始在主页上填写一些信息,然后按提交。我希望用户被传递到注册页面,并预先填写他们在首页上已经填写的项目 我尝试过的事情: 我不确定什么是可行的,并且已经在这方面花费了太多的时间。我尝试扩展注册控制器,但在开始解决问题之前就出现了错误,因此我停止了。我最后的想法是将会话中的变量传递给重写的注册表类型,并查看是否可以在那里预先填充它Php 主页上的部分用户注册(索引),php,symfony,registration,fosuserbundle,user-registration,Php,Symfony,Registration,Fosuserbundle,User Registration,我将Symfony2 2.6.4与FOS用户包主机一起使用,我很难将部分注册从主页传递到注册页面 目标 我希望用户开始在主页上填写一些信息,然后按提交。我希望用户被传递到注册页面,并预先填写他们在首页上已经填写的项目 我尝试过的事情: 我不确定什么是可行的,并且已经在这方面花费了太多的时间。我尝试扩展注册控制器,但在开始解决问题之前就出现了错误,因此我停止了。我最后的想法是将会话中的变量传递给重写的注册表类型,并查看是否可以在那里预先填充它 以前有人做过类似的事情吗?他们肯定不会让事情变得容易
以前有人做过类似的事情吗?他们肯定不会让事情变得容易 归功于@NawfalSerrar谢谢你的想法。我离得很近,但还不够近 所以我最后做的就是这个 这是执行该操作的控制器操作
/**
* @Route("/", name="Home")
*/
public function indexAction(Request $request)
{
$form = $this->createForm(new RegisterFormType());
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
$user = new User();
$session = $this->get('session');
$registration = array();
$registration['firstName'] = $data['first'];
$registration['lastName'] = $data['last'];
$registration['middleInit'] = $data['middle'];
$registration['email'] = $data['email'];
$session->set('registration', $registration);
return $this->redirect($this->generateUrl("fos_user_registration_register"));
}
return $this->render('Bundle:Page:index.html.twig', array(
'form' => $form->createView(),
));
}
然后是前端的表单
{{ form_start(form,{'attr': {'class': 'reg-page'}}) }}
<div class="reg-header">
<h1>Get Started!</h1>
<p>Already Signed Up? Click <a href="page_login.html" class="color-green">Sign In</a> to login
your account.</p>
</div>
{{ form_errors(form) }}
<div class="row">
<div class="col-sm-6">
{{ form_label(form.first) }}
{{ form_widget(form.first, {'attr': {'class': 'form-control margin-bottom-10'}}) }}
</div>
<div class="col-sm-6">
{{ form_label(form.middle) }}
{{ form_widget(form.middle, {'attr': {'class': 'form-control margin-bottom-10'}}) }}
</div>
<div class="col-sm-6">
{{ form_label(form.last) }}
{{ form_widget(form.last, {'attr': {'class': 'form-control margin-bottom-10'}}) }}
</div>
</div>
{{ form_label(form.email) }}
{{ form_widget(form.email, {'attr': {'class': 'form-control'}}) }}
<div class="row">
<div class="col-lg-6 text-right">
{{ form_widget(form.save, {'attr': {'class': 'btn-u'}}) }}
</div>
</div>
{{ form_end(form) }}
注册页面如下所示
{% extends '::base.html.twig' %}
{% block body %}
{% set tokens = app.session.get('registration') %}
{% if tokens['firstName'] is defined %}
{% set firstName = tokens['firstName'] %}
{% endif %}
{% if tokens['middleInit'] is defined %}
{% set middleInit = tokens['middleInit'] %}
{% endif %}
{% if tokens['lastName'] is defined %}
{% set lastName = tokens['lastName'] %}
{% endif %}
{% if tokens['email'] is defined %}
{% set email = tokens['email'] %}
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_label(form.firstName, 'First Name', {label_attr: {class: 'foo'}}) }}
{% if firstName is defined %}
{{ form_widget(form.firstName, { attr: {class: 'TestClass'}, value : firstName }) }}
{% else %}
{{ form_widget(form.firstName, { attr: {class: 'TestClass'} }) }}
{% endif %}
{{ form_label(form.middleInitial) }}
{% if middleInitial is defined %}
{{ form_widget(form.middleInitial, { attr: {class: 'TestClass'}, value : middleInit }) }}
{% else %}
{{ form_widget(form.middleInitial, { attr: {class: 'TestClass'}}) }}
{% endif %}
{{ form_label(form.lastName) }}
{% if lastName is defined %}
{{ form_widget(form.lastName, { attr: {class: 'TestClass'}, value : lastName }) }}
{% else %}
{{ form_widget(form.lastName, { attr: {class: 'TestClass'}}) }}
{% endif %}
{{ form_label(form.email) }}
{% if email is defined %}
{{ form_widget(form.email, { attr: {class: 'TestClass'}, value : email }) }}
{% else %}
{{ form_widget(form.email, { attr: {class: 'TestClass'}}) }}
{% endif %}
{{ form_label(form.plainPassword.first) }}
{{ form_widget(form.plainPassword.first) }}
{{ form_label(form.plainPassword.second) }}
{{ form_widget(form.plainPassword.second) }}
<div>
<input type="submit" value="{{ 'registration.submit'|trans }}"/>
</div>
{{ form_end(form) }}
{% endblock %}
希望这有帮助 覆盖模板应该很容易,只需在相同的路径中创建一个新的分支,如app/Resources/FOSUserBundle/views/Registration/register.html.twig和app/Resources/FOSUserBundle/views/Registration/register\u content.html.twig,然后您就可以使用会话填充其中的字段。{{app.session.get'myfield'}}这有效了!我会把我的答案贴在下面。谢谢@NawfalSerrar!