将Laravel形式更改为html形式

时间:2019-04-08 03:00:32

标签: laravel forms laravel-blade

嗨,我用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() }}

我希望博客数据显示在表单中供我编辑。.当我使用表单助手时,它工作正常

任何帮助将不胜感激

谢谢

1 个答案:

答案 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}}的含义已从较早的版本转换为较新的版本。