嗨,我用laravel表单助手创建了一个表单,但我想将其更改为标准的html表单。我遇到的问题是“ PUT”功能,当我尝试编辑帖子时,没有数据显示,因此我认为我的表单属性有误。
表格标题
<form method="post" action="{{route('posts.update',[$post->id])}}" enctype="multipart/form-data">
{{csrf_field()}}
{{method_field('put')}}
<input type=""text" name="name" class="name">
<input type=""text" name="body" class="body">
<button></button>
</form>
(-更新-)
Laravel形式
{!! Form::model($post, ['route' => ['posts.update', $post->id], 'method' => 'PUT']) !!}
{{ Form::label('name', 'Name:') }}
{{ Form::text('name', null, ["class" => 'form-control input-lg']) }}
{ Form::label('body', 'Body:') }}
{{ Form::text('body', null, ["class" => 'form-control input-lg']) }}
{{ Form::submit('Save Changes', array('class' => 'btn btn-success btn-block')) }}
{{ Form::close() }}
我希望博客数据显示在表单中供我编辑。.当我使用表单助手时,它工作正常
任何帮助将不胜感激
谢谢
灰
答案 0 :(得分:0)
嘘,
我在这里看不到Laravel表单代码来将两者进行比较,但是将Laravel表单转换为纯HTML的最简单方法是查看生成的表单上的源代码并将生成的HTML代码复制回刀片中。然后,您可以用变量替换填充的数据。
(-更新-)
因此,将其放回刀片服务器中
{!! Form::model($post, ['route' => ['posts.update', $post->id], 'method' => 'PUT']) !!}
{{ Form::label('name', 'Name:') }}
{{ Form::text('name', null, ["class" => 'form-control input-lg']) }}
{ Form::label('body', 'Body:') }}
{{ Form::text('body', null, ["class" => 'form-control input-lg']) }}
{{ Form::submit('Save Changes', array('class' => 'btn btn-success btn-block')) }}
{{ Form::close() }}
,然后复制“ put”操作的HTML输出。或者,如果您使用的是当前版本的Laravel,则可以按如下所示使用put方法:
@method('PUT')
(请参阅https://laravel.com/docs/5.8/blade)
(-原始-) 另外,您没有提到您正在使用的Laravel版本。用于将字段插入刀片的语法不同。
(-更新-) @kapitan,你是对的。我通过使用LaraShift告诉我,我所有的{{$ field}}需要更改为{! $ field !!}来升级我的应用程序。语法已更改如下。
在较旧的Laravel版本中,用{{$ field}}插入的变量被转义,而用{{{$ field}}}插入的变量被转义。
在较新的Laravel版本中,使用{{$ field}}插入的变量被转义,而使用{!! $ field !!}被转义。因此,{{$ field}}的含义已从较早的版本转换为较新的版本。