Ric*_*wan 27 php forms routes put laravel
我在我的路线中有这个:
+--------+---------------------------+--------------+--------------------------- ---------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+---------------------------+--------------+--------------------------- ---------+----------------+---------------+
| | GET|HEAD / | | postcontroller | auth | |
| | GET|HEAD login | | homecontroller@dologin | | |
| | POST login | | homecontroller@dologin | | |
| | GET|HEAD logout | | homecontroller@dologout | | |
| | GET|HEAD post | post.index | postcontroller@index | | |
| | GET|HEAD post/create | post.create | postcontroller@create | | |
| | POST post | post.store | postcontroller@store | | |
| | GET|HEAD post/{post} | post.show | postcontroller@show | | |
| | GET|HEAD post/{post}/edit | post.edit | postcontroller@edit | | |
| | PUT post/{post} | post.update | postcontroller@update | | |
| | PATCH post/{post} | | postcontroller@update | | |
| | DELETE post/{post} | post.destroy | postcontroller@destroy
Run Code Online (Sandbox Code Playgroud)
现在,我想制作一个将使用PUT方法的表单html.这是我的代码:
<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>
Run Code Online (Sandbox Code Playgroud)
但我不会将表单提交到post.edit.
我用谷歌搜索,我得到了必须使用的解决方案
{{form:...etc
Run Code Online (Sandbox Code Playgroud)
但是,我希望表单仍然可以通过CSS样式完成.有没有解决方案呢?谢谢
Edg*_*zco 38
您可以添加css clases以及刀片模板所需的任何类型的属性,请尝试以下操作:
{{ Form::open(array('url' => '/', 'method' => 'PUT', 'class'=>'col-md-12')) }}
.... wathever code here
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
如果您不想采用刀片方式,则可以添加隐藏输入.这是Laravel的形式,无论如何:
注意:由于HTML表单仅支持POST和GET,因此将自动在表单中添加_method隐藏字段来欺骗PUT和DELETE方法.(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>
Run Code Online (Sandbox Code Playgroud)
Par*_*don 34
如果您使用的是HTML表单元素而不是Laravel表单生成器,则必须放在method_field表单开始标记和结束标记之间.通过这样做,您可以明确定义表单方法类型.
<form>
{{ method_field('PUT') }}
</form>
Run Code Online (Sandbox Code Playgroud)
Rad*_*dez 12
很简单,你只需要method_field('PUT')像这样使用:
HTML:
<form action="{{ route('route_name') }}" method="post">
{{ method_field('PUT') }}
{{ csrf_field() }}
</form>
Run Code Online (Sandbox Code Playgroud)
要么
<form action="{{ route('route_name') }}" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
Run Code Online (Sandbox Code Playgroud)
问候!
| 归档时间: |
|
| 查看次数: |
73965 次 |
| 最近记录: |