Как получить значения формы в контроллере Symfony2 - PullRequest
78 голосов
/ 24 января 2012

Я использую форму входа в Symfony2 со следующим кодом контроллера

public function loginAction(Request $request)
{
    $user = new SiteUser();
    $form = $this->createForm(new LoginType(), $user);


    if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);
        $data = $form->getValues();
        // Need to do something with the data here
    }

    return $this->render('GDSiteBundle::header.html.twig', array('form' => $form->createView()));
}

Но я получаю следующее предупреждение:

Предупреждение: array_replace_recursive () [function.array-replace-recursive]: Аргумент # 1 не является массивом в строке \ vendor \ symfony \ src \ Symfony \ Component \ Form \ Form.php 593 500 Внутренняя ошибка сервера - ErrorException

Может кто-нибудь помочь мне понять, что неверно, и как я могу это исправить? Благодаря.

Обновление: Файл ветки выглядит примерно так:

<div class="form">
    {{ form_errors(form) }}
    <form action="{{ path('site_user_login') }}" method="POST" {{ form_enctype(form) }}>
        <div class="level1">
            {{ form_row(form.username) }}
            <a href="javascript:void(0)" id="inscription">{% trans %}Registration{% endtrans %}</a>
        </div>
        <div class="level2">
            {{ form_row(form.pwd_hash) }}
            <div class="forget_pass"><a href="#" id="frgt">{% trans %}Forgot Password ?{% endtrans %}</a></div>
        </div>
        <input type="submit" class="submit" name="login" value/>
        <div class="clr"></div>
    </form>
</div>

Вот функция в Типе формы

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('username', 'text', array('label' => 'Username : '));
    $builder->add('pwd_hash','password', array('label' => 'Password : '));
}

Вот маршрут:

site_user_login:
    pattern: /{_locale}/login
    defaults: {_controller: GDSiteBundle:SiteUser:login}

Ответы [ 12 ]

2 голосов
/ 24 января 2012

Если вы используете управление безопасностью Symfony 2, вам не нужно получать опубликованные значения, вам нужно только управлять шаблоном формы (см. документация ).

Если вы неНе пользуюсь управлением безопасностью Symfony 2, я настоятельно советую вам его использовать.Если вы не хотите или не можете, можете ли вы дать нам источники LoginType?

0 голосов
/ 25 июня 2018

Для не отображенных полей формы я использую $ form-> get ('inputName') -> getViewData ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...