简单的laravel html表单

时间:2017-08-21 08:32:05

标签: laravel

如何在laravel blade中以简单的html格式编写此代码

{!! Form::model($user, [
          'method' => 'PUT',
          'url'  => '/edit-account'    
]) !!}

在控制器中有这种方法:

public function edit(Request $request)
{
    $user = $request->user();
    return view('backend.home.edit', compact('user'));
}

3 个答案:

答案 0 :(得分:1)

<form method="post" action="/edit-account">
    {{csrf_field()}}
    <input type="hidden" name="_method" value="PUT">
</form>

<强>解释

&#34;方法&#34; laravel集体形式类似于&#34;方法&#34; html表单的属性。 &#34; URL&#34;在laravel集体形式是&#34;行动&#34; html表单的属性。

由于没有put,patch和delete方法,我们需要传递一个名为&#34; _method&#34;的隐藏字段。值为&#34; PUT&#34;用于更新数据。

在应用程序中定义HTML表单时,我们应该在表单中包含一个隐藏的CSRF令牌字段,以便CSRF保护中间件可以验证请求,这里我使用csrf_field helper来生成令牌字段。

答案 1 :(得分:1)

如果您想使用特定方法创建表单,可以执行以下操作:

<form action="/edit-account" method="POST">
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
    <input type="hidden" name="_method" value="PUT" />
    [... Inputs like <input type="email" name="email" value="old('email')/> ...]
</form>

<form action="/edit-account" method="POST">
    {{ csrf_field() }}
    {{ method_field('PUT') }}
    [... Inputs like <input type="email" name="email" value="old('email')/> ...]
</form>

文档

如果您想在提交后了解如何验证表单:https://laravel.com/docs/5.4/validation

答案 2 :(得分:0)

Form::model基本上使用来自旧输入或给定模型属性的数据填充输入字段。所以基本形式可以这样写。

<form action="/edit-account" method="POST">

    <input type="hidden" name="_token" value="{{ csrf_token() }}">

    <input type="hidden" name="_method" value="PUT">

    ...

</form>

要填充数据,您可以使用old辅助函数,然后检查错误。

所以基本输入块看起来像这样。

<input type="text" name="name" value="{{ old('name', $user->name) }}">

@if ($errors->has('name'))
    <strong>{{ $errors->first('name') }}</strong>
@endif

参考文献:

old()

csrf_token()

Working With Error Messages