如何在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'));
}
答案 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