将laravel表单更改为html表单

问题描述 投票:0回答:1

嗨我创建了一个带有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() }}

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

任何帮助都感激不尽

谢谢

laravel forms laravel-blade
1个回答
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() }}

然后复制HTML输出以进行“put”操作。或者,如果您使用的是当前版本的Laravel,则只需使用put方法,如下所示:

@method('PUT')

(见https://laravel.com/docs/5.8/blade

( - ORIGINAL--)另外,你没有提到你所使用的Laravel版本。将字段插入刀片的语法各不相同。

( - 更新 - )@kapitan,你是对的。我“学会”使用LaraShift告诉我所有{{$ field}}都需要更改为{!! $ field !!}升级我的应用程序。语法已更改如下。

在早期版本的Laravel中,使用{{$ field}}插入的变量是UNescaped,并且使用{{{$ field}}}插入的变量被转义。

在较新版本的Laravel中,使用{{$ field}}插入的变量将被转义,并且使用{!!插入变量$ field !!}是UNescaped。因此{{$ field}}的含义已从旧版本转换为较新版本。

© www.soinside.com 2019 - 2024. All rights reserved.