Symfony2-잘못된 컨트롤러 작업이 호출되었습니다.

닉 프라이스

나는 페이지에서 많은 일을하고 있고 어딘가에서 갈등을 느끼고 있다고 생각합니다. 기본적으로 내 페이지에는 처음에 입력과 빈 div가 표시됩니다. 입력이 제공되고 제출되면 페이지가 데이터로 가득 찬 div로 새로 고쳐집니다. 사용자는이 데이터 중 일부를 선택하고 마지막으로 다시 제출할 수 있습니다.

이것이 나의 견해

{% block main %}
    <div class="col-md-4">
        <section class="panel panel-default">
            <header class="panel-heading">
                <h3 class="panel-title">Terminal</h3>
            </header>

            <div class="panel-body">
                <form action="{{ path('NickAlertBundle_terminalSearch') }}" method="post" enctype="multipart/form-data" class="terminalForm" id="terminalForm">
                    <div class="row">
                        <div class="col-md-12">
                            <input type="text" class="addMargin" id="terminal_command" name="terminal_command" placeholder=">">
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-8 col-md-offset-4">
                            <input type="submit" class="btn btn-default" id="terminal_submit" value="Submit">
                        </div>
                    </div>
                </form>
            </div>
        </section>
    </div>

    <div class="col-md-8" id="terminal-window">
        <table class="terminalAvailability">
            {% if data is defined %}
                <form action="{{ path('NickAlertBundle_terminalCreate') }}" method="post" enctype="multipart/form-data" class="terminalForm">
                    {% for info in data %}
                        <tr>
                            <td class="flightNumber">{{ info.flightNumber }}</td>
                            <td class="details">{{ info.from ~ info.to }}</td>
                            {% for seat, availability in info.seats %}
                                <td class="seatClass">
                                    <label for="{{ seat }}">
                                        <span>{{ seat ~ availability }}</span>
                                    </label>
                                    <input type="checkbox" id="{{ seat }}" name="seats[{{ info.flightNumber }}][]" style="display: none;" value="{{ seat }}" />
                                </td>
                            {% endfor %}
                            <td class="otherInfo">{{ info.other }}</td>
                        </tr>
                    {% endfor %}
                    <div class="row">
                        <div class="col-md-8 col-md-offset-4">
                            <input type="submit" class="btn btn-default" value="Submit">
                        </div>
                    </div>
                </form>
            {% endif %}
        </table>
    </div>

    <div class="modal"></div>
{% endblock %}

첫 번째 div는 입력이고 두 번째 div는 데이터가 표시되고 선택되고 다시 제출되는 div입니다.

그런 다음 컨트롤러 작업이 있습니다.

public function terminalAction()
{
    return $this->render('NickAlertBundle:Page:terminal.html.twig');
}

public function terminalSearchAction(Request $request)
{
    try {
        $terminal_command = strtoupper($request->get('terminal_command'));

        $error = array();

        if (!$terminal_command) {
            $error[] = "Please enter the Command";
        }

        if (count($error)) {
            echo "There were errors adding the alert.\n\n";
            foreach ($error as $item) {
                echo $item . "\n";
            }
            die();
        }

        $uapiService = $this->container->get('alert_bundle.api_service');
        $commandData = $apiService->terminalService($terminal_command);

        return $this->render('NickAlertBundle:Page:terminal.html.twig', array(
            'data' => $commandData,
        ));

    }catch (Exception $e) {
    }
}

public function terminalCreateAction(Request $request)
{
    try {
        foreach ($request->request->get('seats') as $row) {
            foreach ($row as $seat) {
                var_dump($seat);
            }
        }
        return $this->render('NickAlertBundle:Page:terminal.html.twig');

    }catch (Exception $e) {
    }
}

그리고 마지막으로 내 경로

NickAlertBundle_terminal:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminal }
    methods:  [GET]

NickAlertBundle_terminalSearch:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalSearch }
    methods:  [POST]

NickAlertBundle_terminalCreate:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalCreate }
    methods:  [POST]

So the page is initially displayed fine. The user then enters some input, submits it, and the response data is then displayed in the div. So this means the first two routes work perfectly. With the data in the div, the user can select some data, and then submit it. However, when this data is submitted, they are displayed with

There were errors adding the alert. Please enter the Command

This error is for the second action, and should not have anything to do with the third action. The second form has its path set to NickAlertBundle_terminalCreate so why would it cross wires with the other action?

Thanks

Alexandru Furculita

NickAlertBundle_terminalCreate will always solve to NickAlertBundle_terminalSearch, because the RouteMatcher will always match the pattern /terminal + method POST to the first route with these rules.

NickAlertBundle_terminalSearch같은 패턴을 주지 /terminal/search않겠습니까?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Symfony2 : 업데이트가 매핑 된 잘못된 유효성 검사를 중단합니다.

분류에서Dev

외부 SQL 테이블을 사용할 때 잘못된 컨트롤러가 활성화되었습니다.

분류에서Dev

Symfony2 : 서비스 컨테이너가 컨트롤러 생성자에 전달되지 않았습니다.

분류에서Dev

다른 컨트롤러의 Symfony2 통화 컨트롤러

분류에서Dev

Symfony2 컨트롤러의 ClearCache 명령이 프로덕션 환경에서 작동하지 않습니다.

분류에서Dev

다중 컨트롤러 페이지의 잘못된 데이터 바인딩

분류에서Dev

AngularJS : 컨트롤러에이 주입이 잘못된 것은 무엇입니까?

분류에서Dev

symfony2에서 컨트롤러 메서드가 두 번 호출되는 이유

분류에서Dev

struts2 작업 매핑이 잘못되었습니다.

분류에서Dev

자동 레이아웃-뷰 컨트롤러 프레임이 잘못되었습니다.

분류에서Dev

컨트롤러 도우미 메서드를 사용할 때 범위 값이 잘못되었습니다.

분류에서Dev

컨트롤러 서비스를 업데이트 할 때 400 잘못된 요청으로 "메시지 본문이 잘못되었습니다. 예상 한 형식으로 매핑 할 수 없습니다."응답

분류에서Dev

MVC-동작이 잘못된 컨트롤러로 전달됨

분류에서Dev

symfony2 컨트롤러에서 mysql 명령 호출

분류에서Dev

Rspec보기 : 잘못된 컨트롤러 이름을 사용하여 일치하는 경로가 없습니다.

분류에서Dev

행 삭제 : '잘못된 업데이트 : 섹션 0의 행 수가 잘못되었습니다'오류

분류에서Dev

Symfony2 컨트롤러에서 액션 이름을 어떻게 얻을 수 있습니까?

분류에서Dev

Yii에서 잘못된 URL 또는 잘못된 컨트롤러 / 작업 인 경우 잘못된 페이지로 리디렉션하는 방법은 무엇입니까?

분류에서Dev

Symfony2-모든 컨트롤러 작업에서 동일한 getRepository 호출

분류에서Dev

Ajax를 사용하여 POST 데이터를 JSON 형식으로 Symfony2 컨트롤러로 보냅니다.

분류에서Dev

컨트롤러 symfony2 용 PHPUnit 테스트 케이스

분류에서Dev

JTextField 설정 텍스트 출력이 잘못되었습니다.

분류에서Dev

잘못된 메서드를 호출하는 webapi 컨트롤러

분류에서Dev

잘못된 컨트롤러 함수가 호출 됨

분류에서Dev

단일 컨트롤러를위한 Symfony2 다중 경로

분류에서Dev

엔티티 업데이트 중 WebApi v2 Odata에서 JayData가 잘못된 동작을 수행하면 패치 엔드 포인트가 호출됩니다.

분류에서Dev

Symfony2 {{render (controller (...))}} "부모"컨트롤러 및 작업 가져 오기

분류에서Dev

CodeIgniter의 로그인 양식은 잘못된 자격 증명이 제공 될 때마다 URL에서 컨트롤러를 호출합니다.

분류에서Dev

LC3에서 잘못된 벡터 번호로 트랩이 실행되었습니다.

Related 관련 기사

  1. 1

    Symfony2 : 업데이트가 매핑 된 잘못된 유효성 검사를 중단합니다.

  2. 2

    외부 SQL 테이블을 사용할 때 잘못된 컨트롤러가 활성화되었습니다.

  3. 3

    Symfony2 : 서비스 컨테이너가 컨트롤러 생성자에 전달되지 않았습니다.

  4. 4

    다른 컨트롤러의 Symfony2 통화 컨트롤러

  5. 5

    Symfony2 컨트롤러의 ClearCache 명령이 프로덕션 환경에서 작동하지 않습니다.

  6. 6

    다중 컨트롤러 페이지의 잘못된 데이터 바인딩

  7. 7

    AngularJS : 컨트롤러에이 주입이 잘못된 것은 무엇입니까?

  8. 8

    symfony2에서 컨트롤러 메서드가 두 번 호출되는 이유

  9. 9

    struts2 작업 매핑이 잘못되었습니다.

  10. 10

    자동 레이아웃-뷰 컨트롤러 프레임이 잘못되었습니다.

  11. 11

    컨트롤러 도우미 메서드를 사용할 때 범위 값이 잘못되었습니다.

  12. 12

    컨트롤러 서비스를 업데이트 할 때 400 잘못된 요청으로 "메시지 본문이 잘못되었습니다. 예상 한 형식으로 매핑 할 수 없습니다."응답

  13. 13

    MVC-동작이 잘못된 컨트롤러로 전달됨

  14. 14

    symfony2 컨트롤러에서 mysql 명령 호출

  15. 15

    Rspec보기 : 잘못된 컨트롤러 이름을 사용하여 일치하는 경로가 없습니다.

  16. 16

    행 삭제 : '잘못된 업데이트 : 섹션 0의 행 수가 잘못되었습니다'오류

  17. 17

    Symfony2 컨트롤러에서 액션 이름을 어떻게 얻을 수 있습니까?

  18. 18

    Yii에서 잘못된 URL 또는 잘못된 컨트롤러 / 작업 인 경우 잘못된 페이지로 리디렉션하는 방법은 무엇입니까?

  19. 19

    Symfony2-모든 컨트롤러 작업에서 동일한 getRepository 호출

  20. 20

    Ajax를 사용하여 POST 데이터를 JSON 형식으로 Symfony2 컨트롤러로 보냅니다.

  21. 21

    컨트롤러 symfony2 용 PHPUnit 테스트 케이스

  22. 22

    JTextField 설정 텍스트 출력이 잘못되었습니다.

  23. 23

    잘못된 메서드를 호출하는 webapi 컨트롤러

  24. 24

    잘못된 컨트롤러 함수가 호출 됨

  25. 25

    단일 컨트롤러를위한 Symfony2 다중 경로

  26. 26

    엔티티 업데이트 중 WebApi v2 Odata에서 JayData가 잘못된 동작을 수행하면 패치 엔드 포인트가 호출됩니다.

  27. 27

    Symfony2 {{render (controller (...))}} "부모"컨트롤러 및 작업 가져 오기

  28. 28

    CodeIgniter의 로그인 양식은 잘못된 자격 증명이 제공 될 때마다 URL에서 컨트롤러를 호출합니다.

  29. 29

    LC3에서 잘못된 벡터 번호로 트랩이 실행되었습니다.

뜨겁다태그

보관