Катализатор $c->req->params пуст?

Попытка Катализировать некоторые страницы прототипа с полями формы. Мой контроллер Catalyst, похоже, не получает входные данные из формы при ее отправке.

Я пытался уменьшить шаблон и контроллер, насколько я могу, и я все еще получаю эту проблему.

Шаблон просто:

<body>
    <form action="/minimal-testing" method="get">
          <select id="select02">
            <option value="cat1">cat1</option>
            <option value="cat2">cat2</option>
          </select>
          <select id="select06">
            <option value="1">1</option>
            <option value="2">2</option>
          </select>
        <input type="submit" value="submit" title="submit" />
    </form>
    <p> Hello, params says: </p>
    <p>
      [% FOR param IN params ; param.key ; ' = ' ; param.value; END %]
    </p>
</body>

Контроллер это:

sub minimal_testing :Path('minimal-testing') :Args(0) {
    use Data::Dumper;
    my ( $self, $c ) = @_;
    $c->stash(params=>$c->req->params);
    $c->stash(template => "dynamic/minimal-testing.tt");
    $c->log->debug(Dumper($c->request->params));
}

Когда я просматриваю форму, выбираю из опций select и отправляю, мой журнал отладки просто говорит

[debug] $VAR1 = {};

Очевидно, я что-то упускаю настолько очевидное, что просто не вижу этого... пожалуйста, просветите меня.

1 ответ

Решение

Вы правы. Я подозреваю, что ваш журнал Catalyst должен дать вам подсказку, что здесь происходит не так. Проблема не с Катализатором.

По сути, это искаженный HTML - каждый из ваших входов в форму name параметр, который может быть передан обратно на сервер в POST.

      <select id="select02" name="select02">
        <option value="cat1">cat1</option>
        <option value="cat2">cat2</option>
      </select>

id для CSS, name для обработки ФОРМ.

Попробуйте это, и вы должны получить запись как:

[11:31:28.499 16014:debug] Body Parameters are:

.-------------------+----------------------------------------.
| Parameter         | Value                                  |
+-------------------+----------------------------------------+
| select02          | cat1                                   |
| select06          | 2                                      |
'-------------------+----------------------------------------'

Надеюсь, это поможет.

Другие вопросы по тегам