Chr*_*ris 5 php forms symfony twig fosuserbundle
在这个问题上,我已经在我的智慧结束了几天,我似乎无法找到问题.
概述:
问题:
我已将注册表单移动到我的"用户管理器仪表板"中的模态视图中的最终位置.我的表单正确加载和显示,但无论出于何种原因拒绝将数据提交给控制器进行处理.相反,它只是加载注册的默认路由('/ register')并再次显示表单,但没有任何我的css,js或基本树枝模板.当我以该表单重新输入信息时,它只是重新加载,没有任何信息进入数据库.
我确信问题在于(或两者)我如何提交表格或我如何归类表格.
注意我已将类的名称更改为法定的AcmeBundle,原因很明显:)
任何人都可以对此有所了解吗?我真的要崩溃这个问题了!
提前谢谢你:D
编辑
我现在认为这可能是一个路由问题,因为我已经验证了我的表单构建并正确收集了它的所有值?
应用程序/ config.yml
#FOS UserBundle Configuration
fos_user:
db_driver: propel # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: FOS\UserBundle\Propel\User
registration:
form:
type: acme_user_registration
#Services
services:
acme_user.registration.form.type:
class: Acme\UserBundle\Form\Type\RegistrationFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: acme_user_registration }
acme_user.form.handler.registration:
class: Acme\UserBundle\Form\Handler\RegistrationFormHandler
arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer", "@fos_user.util.token_generator"]
scope: request
Run Code Online (Sandbox Code Playgroud)
app/routing.yml是根据文档的标准FOSUserBundle配置
# FOSUserBundle Routing
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
Run Code Online (Sandbox Code Playgroud)
极致/ UserBundle /控制器/ RegistrationController.php
<?php
namespace Acme\UserBundle\Controller;
use FOS\UserBundle\Controller\RegistrationController as BaseController;
use Symfony\Component\HttpFoundation\Response;
class RegistrationController extends BaseController
{
public function render($view, array $parameters = array(), Response $response = null)
{
return parent::render($view, $parameters, $response);
}
}
Run Code Online (Sandbox Code Playgroud)
Acme/AdminBundle/Resources/views/_addUser.html.twig这是我调用模态的地方
{% include "FOSUserBundle::layout.html.twig" %}
<!-- Modal -->
<div id="registerUser" class="reveal-modal xlarge" data-reveal>
<h2 align="center">Add New User</h2>
<h6 align="center" style="color: red">All Fields are Required</h6>
{% block fos_user_content %}
{% render url('fos_user_registration_register') %}
{% endblock %}
<a class="close-reveal-modal">×</a>
</div>
Run Code Online (Sandbox Code Playgroud)
app/Resources/FOSUserBundle/views/Registration/register.html.twig根据文档覆盖
{% block fos_user_content %}
{% include 'FOSUserBundle:Registration:register_content.html.twig' %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
app/Resources/FOSUserBundle/views/Registration/register_content.html.twig根据文档覆盖
<form data-abide class="fos_user_registration_register" action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="post" >
<fieldset>
<legend>Personal Details</legend>
{# First Name #}
<div>
<label for="form_first_name">First Name</label>
<input type="text" id="form_first_name" name="form[first_name]" required pattern="[a-zA-Z]+"/>
<small class="error">This field is required</small>
</div>
{# Last Name #}
<div>
<label for="form_last_name">Surname</label>
<input type="text" id="form_last_name" name="form[last_name]" required pattern="[a-zA-Z]+">
<small class="error">This field is required</small>
</div>
etc...
etc...
etc...
</fieldset>
<div>
<input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" />
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
您必须更改您的 register_content.html.twig :
{{ form_start(form, {'attr': {'class': 'fos_user_registration_register', 'id': 'register-form'} }) }}
{{ form_label(form.username) }}
{{ form_errors(form.username) }}
{{ form_widget(form.username) }}
{{ form_label(form.email) }}
{{ form_errors(form.email) }}
{{ form_widget(form.email) }}
{{ form_label(form.plainPassword.first, null, {'label_attr': {'class': 'col-sm-3 control-label'}}) }}
{{ form_errors(form.plainPassword.first) }}
{{ form_widget(form.plainPassword.first, { 'attr': {'class': 'form-control'} }) }}
{{ form_label(form.plainPassword.second, null, {'label_attr': {'class': 'col-sm-3 control-label'}}) }}
{{ form_errors(form.plainPassword.second) }}
{{ form_widget(form.plainPassword.second, { 'attr': {'class': 'form-control'} }) }}
<input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" />
{{ form_rest(form) }}
Run Code Online (Sandbox Code Playgroud)
这对我有用。您应该查看有关表单的 twig 文档,它将对您有所帮助。
| 归档时间: |
|
| 查看次数: |
4872 次 |
| 最近记录: |