2015-01-26 3 views
15

У меня есть это в моих маршрутах:Laravel формы HTML с помощью метода PUT для PUT маршрутов

+--------+---------------------------+--------------+---------------------------                            ---------+----------------+---------------+ 
| 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] 

Теперь я хочу сделать форму HTML, который будет использовать метод PUT. Вот мои коды:

<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>  

Но я не работаю, чтобы отправить форму в post.edit.

I Have гугл и я получил решение, что я должен использовать

{{form:...etc 

Но, я хочу форму еще можно сделать с помощью CSS стилей. Есть ли какие-нибудь решения? Спасибо

ответ

17

Вы можете добавить CSS clases, и любой тип атрибутов, которые необходимо лезвие шаблон, попробуйте следующее:

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

Если вы не хотите идти вы можете добавить скрытый ввод. Это форма Laravel делает, любым способом:

Примечание: Поскольку HTML формы поддерживают только POST и GET, PUT и DELETE методы будут подменены, автоматически добавляя _method скрытое поле в форму. (Laravel docs)

<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>  
+0

Thank You Very Much:) Теперь это работает! –

+0

Ни один из этих методов не работает в версии 5.4. Связанная выше страница Forms & HTML пуста, когда вы меняете версию на 5.4, –

1

в вашей смене диска вида на

{{ 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() }} 

на самом деле вы можете использовать сырую форму, как ваш вопрос. но я не рекомендовал его. dan itulah salah satu alasan agan belajar framework, простой, dan cepat. так что kenapa pake сырая форма kalo ada yang lebih mudah. хе-хе. гордый быть индонезийцем.

справка (форма лезвия Laravel) [http://laravel-recipes.com/recipes/124/opening-a-new-html-form]

17

Если вы используете HTML Из элемента вместо Laravel Form Builder, вы должны поместить method_file между вашим форме открытия тега и закрытия конца. Сделав это, вы можете явно определить метод .

<form> 
{{ method_field('PUT') }} 
</form> 
Смежные вопросы