web-dev-qa-db-de.com

Laravel-Formular-HTML mit PUT-Methode für PUT-Routen

Ich habe das in meinen Routen:

+--------+---------------------------+--------------+---------------------------                                                                                                                ---------+----------------+---------------+
| Domain | URI                       | Name         | Action                                                                                                                                             | Before Filters | After Filters |
+--------+---------------------------+--------------+---------------------------                                                                                                                ---------+----------------+---------------+
|        | GET|HEAD /                |              | postcontroller                                                                                                                                     | auth           |               |
|        | GET|HEAD login            |              | [email protected]                                                                                                                             |                |               |
|        | POST login                |              | [email protected]                                                                                                                             |                |               |
|        | GET|HEAD logout           |              | [email protected]                                                                                                                            |                |               |
|        | GET|HEAD post             | post.index   | [email protected]                                                                                                                               |                |               |
|        | GET|HEAD post/create      | post.create  | [email protected]                                                                                                                              |                |               |
|        | POST post                 | post.store   | [email protected]                                                                                                                               |                |               |
|        | GET|HEAD post/{post}      | post.show    | [email protected]                                                                                                                                |                |               |
|        | GET|HEAD post/{post}/edit | post.edit    | [email protected]                                                                                                                                |                |               |
|        | PUT post/{post}           | post.update  | [email protected]                                                                                                                              |                |               |
|        | PATCH post/{post}         |              | [email protected]                                                                                                                              |                |               |
|        | DELETE post/{post}        | post.destroy | [email protected] 

Nun möchte ich ein HTML-Formular erstellen, das die PUT-Methode verwendet. Hier sind meine Codes:

<form class="col-md-12" action="<?php echo URL::to('/');?>/post/<?=$post->postID?>" method="put">
    <div class="form-group">
        <textarea type="text" class="form-control input-lg" placeholder="Text Here" name="post"><?=$post->post?></textarea>
    </div>
    <div class="form-group">
        <button class="btn btn-primary btn-lg btn-block" type="submit" value="Edit">Edit</button>
    </div>
</form>     

Aber ich arbeite nicht daran, das Formular in post.edit einzureichen.

Ich habe gegoogelt und ich habe eine Lösung, die ich benutzen muss 

{{form:...etc

Aber ich möchte, dass das Formular immer noch durch CSS-Styling ausgeführt werden kann. Gibt es eine Lösung, Jungs? Danke

Sie können Css-Clases hinzufügen, und jede Art von Attributen, die Sie für die Blade-Vorlage benötigen, versuchen Sie Folgendes:

{{ Form::open(array('url' => '/', 'method' => 'PUT', 'class'=>'col-md-12')) }}
.... wathever code here
{{ Form::close() }}

Wenn Sie den Blade-Weg nicht gehen wollen, können Sie eine verborgene Eingabe hinzufügen. Dies ist die Form, die Laravel auf irgendeine Weise macht:

Hinweis: Da HTML-Formulare nur POST und GET, PUT und DELETE .__ unterstützen. Methoden werden gefälscht, indem automatisch ein verstecktes _method-Feld hinzugefügt wird zu deinem Formular (Laravel-Dokumente)

<form class="col-md-12" action="<?php echo URL::to('/');?>/post/<?=$post->postID?>" method="POST">

<!-- Rendered blade HTML form use this hidden. Dont forget to put the form method to POST -->

<input name="_method" type="hidden" value="PUT">

<div class="form-group">
    <textarea type="text" class="form-control input-lg" placeholder="Text Here" name="post"><?=$post->post?></textarea>
</div>
<div class="form-group">
    <button class="btn btn-primary btn-lg btn-block" type="submit" value="Edit">Edit</button>
</div>
</form>     
27
Edgar Orozco

Wenn Sie ein HTML-Formularelement anstelle von Laravel Form Builder verwenden, müssen Sie method_field zwischen das öffnende Tag -Formular und das schließende Ende setzen. Auf diese Weise können Sie den Typ form method explizit definieren.

<form>
{{ method_field('PUT') }}
</form>
30
mistertandon

Ist sehr einfach, Sie müssen nur method_field('PUT') wie folgt verwenden:

HTML:

<form action="{{ route('route_name') }}" method="post">
    {{ method_field('PUT') }}
    {{ csrf_field() }}
</form>

oder

<form action="{{ route('route_name') }}" method="post">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

Grüße!

Verwenden Sie dies einfach irgendwo im Formular

@method('PUT')
7
ZZA

in Ihrer Sicht wechseln Sie zu

{{ Form::open(['action' => '[email protected]', 'method' => 'PUT', 'class' = 'your class here']) }}

<div>
{{ Form::textarea('textareanamehere', 'default value here', ['placeholder' => 'your place holder here', 'class' => 'your class here']) }}
</div>

<div>
{{ Form::submit('Update', ['class' => 'btn class here'])}}
</div>

{{ Form::close() }}

eigentlich können Sie rohe Form als Ihre Frage verwenden. aber ich habe es nicht empfohlen. dan itulah salah satu alasan agan belajar, einfach, dan cepat. So Kenapa pake rohe Form kalo ada yang lebih mudah. hehe stolz darauf, Indonesier zu sein.

referenz (Laravel-Klingenform) [ http://laravel-recipes.com/recipes/124/opening-a-new-html-form]

0
Dark Cyber