Php 使用补丁方法,不更新记录(curd操作)
我已成功插入、读取并删除了记录,而 正在执行基本的凝乳操作。现在我正在尝试更新/编辑记录 已成功插入到数据库中。但记录未被删除 更新单击更新按钮后,将按原样显示上一条记录 route.phpPhp 使用补丁方法,不更新记录(curd操作),php,laravel-5,Php,Laravel 5,我已成功插入、读取并删除了记录,而 正在执行基本的凝乳操作。现在我正在尝试更新/编辑记录 已成功插入到数据库中。但记录未被删除 更新单击更新按钮后,将按原样显示上一条记录 route.php Route::get("edit/{id}" , "testing@edit"); Route::patch("update/{id}" , "testing@update"); testing.php // this is edit function public function edit($id
Route::get("edit/{id}" , "testing@edit");
Route::patch("update/{id}" , "testing@update");
testing.php
// this is edit function
public function edit($id)
{
$user=curd::find($id);
return view("update",compact("user"));
}
// this is update function
public function update(Request $request, $id)
{
$user = curd::find($id);
$user->update(Request::all());
return redirect("read");
}
update.blade.php
<html>
<head>
<title>update</title>
</head>
<body>
<!-- Here We Use Patch Method !-->
{{Form::model($user,['method'=>'patch', 'action'=>
['testing@update',$user->id]])}}
{{Form::label('name','name')}}
{{Form::text('Name')}}
{{Form::submit('Update')}}
{{Form::close()}}
</body>
</html>
更新
{{Form::model($user,['method'=>'patch','action'=>
['testing@update“,$user->id]])}
{{Form::label('name','name')}
{{Form::text('Name')}
{{Form::submit('Update')}
{{Form::close()}}
为什么要使用修补程序更新内容
由于拉威尔
HTML表单不支持放置、修补或删除操作。那么,什么时候
定义从HTML调用的放置、修补或删除路由
表单中,您需要向表单中添加一个隐藏的_方法字段。这个
与_method字段一起发送的值将用作HTTP请求
方法
由于有更多关于为什么在
标签中不允许PUT、DELETE和PUSH的资源
我认为更容易理解为什么表单标签只允许get、POST HTTP请求
GET和POST具有明确的内容中立的基本原理。得到的是
以可以安全重复和删除的方式检索URL的内容
可能是缓存。POST是以一种不安全的方式来做某事
重复、推测执行或缓存
“放”或“删除”没有类似的理由。他们都是
完全被邮递所覆盖。创建或销毁资源是必要的
重复和执行不安全的操作
推测性的,不应该缓存。没有额外的限制
它们需要特殊的语义
所以基本上没有好处
我仍然面临这个问题,更新功能并没有更新记录,它仍然按原样显示以前的记录。