Post-Parametere som handling Input

stemmer
3

Jeg får følgende feilmelding når du sender inn et skjema:

Controller Foo \ ModelBundle \ Controller \ PostController :: createAction () krever at du oppgir en verdi for $ tittelen argument (fordi det ikke er noen standardverdi, eller fordi det er en ikke valgfritt argument etter dette).

Skjemaet er ikke skapt av symfony rammeverket skjemaet funksjonen, det er bare ren html i kvist mal:

<form action={{ path('post') }} method=post>
        Title: <input name=title><br>
        Author: <input name=author><br>
        Content: <input name=content><br>
        <input type=submit>
</form>

Dette er ruteinformasjon for stillingen rute:

post:
        pattern:        /post
        defaults:       { _controller: FooModelBundle:Post:create }
        requirements:
                _method:        POST

Dette er definisjonen av å skape handling:

public function createAction($title, $author, $content) {

Den symfony profiler for forespørselen viser meg, at $ tittel, $ forfatter og $ innhold er satt til de riktige verdiene.

Hva er den riktige måten å gi handlingen med de nødvendige parametrene?

Burde ikke de befolket av rammen med verdiene i POST forespørsel?

Jeg bruker symfony 2,0 PR 10.

Crossposted dette også her: http://forum.symfony-project.org/viewtopic.php?f=23&t=34427

Publisert på 10/04/2011 klokken 17:09
kilden bruker
På andre språk...                            


3 svar

stemmer
1

for denne funksjonen: public function createAction($title, $author, $content)

Føringen skal være som dette:

post:
    pattern:        /post/{title}/{$author}/{content}
    defaults:       { _controller: FooModelBundle:Post:create }
    requirements:
            _method:        POST
Svarte 18/05/2012 kl. 01:08
kilden bruker

stemmer
1

Grunnen til ikke å bruke de rammene danner generasjon og validering funksjoner er følgende:

Det jeg ønsket å oppnå er en rask test av en handling med noen dynamiske data. På dette punktet ønsker jeg ikke å skrive x linjer med kode for databinding og skjemaoppretting. Dens neste trinn.

Det jeg fikk feil var konseptet av parametrene i ruting.

Min tanke var om jeg bruker / {foo} / {bar} som matcher, det er en enkel GET forespørsel. Parametrene hvert fylles til styreenheten uten ytterligere konfigurasjon. Hvis jeg bruker nå en POST-forespørsel, bør parametrene blir også befolket av handlingen.

Poenget er at {foo} og {bar} er deler av URI og ikke noen GET-parametere, slik som? Val = xy. GET / POST parametere har ingenting å gjøre med inngangsparametere for handlingen. Disse finnes ved anmodning gjenstand og selvfølgelig ikke føres til aksjon som metoden parametere.

Svarte 11/04/2011 kl. 16:37
kilden bruker

stemmer
1

Jeg har prøvd å svare på dette for deg hvor du opprinnelig postet spørsmålet på http://forum.symfony-project.org/viewtopic.php?f=23&t=34427&p=115961#p115961

Ideene er å bruke skjema generasjon funksjoner av rammeverket og retrive dataene via forespørselen objektet.

Jeg håper du finner det svært nyttig.

Svarte 11/04/2011 kl. 15:53
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more