Php 如何解决Laravel中的数据更新错误
我想更新注册表数据。因此,首先我为show数据创建了一个表。在这个表中,我包含了一个ViewForUpdate按钮,并传递了Id。当我单击该ViewForUpdate按钮时,它会在另一个页面中正确显示唯一的数据。输入新数据后,当我点击更新按钮时,显示此错误- 那么,如何解决这个问题呢 下面是RegViewUpdate.blade.php文件Php 如何解决Laravel中的数据更新错误,php,mysql,laravel,Php,Mysql,Laravel,我想更新注册表数据。因此,首先我为show数据创建了一个表。在这个表中,我包含了一个ViewForUpdate按钮,并传递了Id。当我单击该ViewForUpdate按钮时,它会在另一个页面中正确显示唯一的数据。输入新数据后,当我点击更新按钮时,显示此错误- 那么,如何解决这个问题呢 下面是RegViewUpdate.blade.php文件 学术表格结构 我相信您需要删除以下行: {{ method_field('PUT') }} 原因是您的路由设置为使用POST方法,因此未定义PUT路由。或
学术
表格结构
我相信您需要删除以下行:
{{ method_field('PUT') }}
原因是您的路由设置为使用POST方法,因此未定义PUT路由。或者,您可以将其更改为指定PUT方法(这是多余的,因为您已经指定了该方法),或者将{Form::open()}}标记与适当的路由一起使用。我相信您会希望删除以下行:
{{ method_field('PUT') }}
原因是您的路由设置为使用POST方法,因此未定义PUT路由。或者,您可以将其更改为指定PUT方法(这是多余的,因为您已经指定了),或者将{Form::open()}}标记与适当的路由一起使用。它应该是路由上的PUT方法 表单操作应为- /编辑/{$users[0]->id} 和路线应为- 路由::put('/edit/{id}','RegViewController@edit');
因为您正在使用PUT方法发送id。它应该是路由上的PUT方法 表单操作应为- /编辑/{$users[0]->id} 和路线应为- 路由::put('/edit/{id}','RegViewController@edit');
因为您正在使用PUT方法发送id。我发现您的代码存在两个问题
- 在您的视图文件中
- 在你的路线上
{!!
Form::open(
['method' => 'PUT',
'route' => ['update','id of data to update']
])
!!}
// place your form content here
{!! Form::close() !!}
2) 按以下方式更改您的路线
{!!
Form::open(
['method' => 'PUT',
'route' => ['update','id of data to update']
])
!!}
// place your form content here
{!! Form::close() !!}
路由::PUT('update/{id}','controller_name@update_method_name');
- 替换控制器\u name=您的控制器名称
- replace update\u method\u name=更新的方法名称
- 在您的视图文件中
- 在你的路线上
{!!
Form::open(
['method' => 'PUT',
'route' => ['update','id of data to update']
])
!!}
// place your form content here
{!! Form::close() !!}
2) 按以下方式更改您的路线
{!!
Form::open(
['method' => 'PUT',
'route' => ['update','id of data to update']
])
!!}
// place your form content here
{!! Form::close() !!}
路由::PUT('update/{id}','controller_name@update_method_name');
- 替换控制器\u name=您的控制器名称
- replace update\u method\u name=更新的方法名称
现在它向我显示了这个错误-找不到/请求的URL/edit/38在此服务器上找不到。但是,数据仍然在数据库中。一个斜杠不起作用,我删除了斜杠。现在它开始工作了。向我显示一条成功的消息。但是,当我检查数据库时,它会显示更新之前的旧数据。这意味着仍然没有更新我的数据。如何修复?现在它向我显示了这个错误-找不到/请求的URL/edit/38在此服务器上找不到。但是,数据仍然在数据库中。一个斜杠不起作用,我删除了斜杠。现在它开始工作了。向我显示一条成功的消息。但是,当我检查数据库时,它会显示更新之前的旧数据。这意味着仍然没有更新我的数据。如何修复此问题??此$task和update是什么??我应该用什么替换吗?从{!!Form::open()!!}中删除$task,update是路由的名称,所以不需要更改它。这个$task和update是什么??我应该用什么替换吗?从{!!Form::open()!!}中删除$task,update是路由的名称,因此无需更改。它与action=“edit/{{$users[0]->id}”不兼容,我删除了斜杠。现在它开始工作了。向我显示一条成功的消息。但是,当我检查数据库时,它会显示更新之前的旧数据。这意味着仍然没有更新我的数据。如何修复此问题??由于原始代码,它只更新名称字段,您确定名称字段相同吗?是的,即使在显示成功消息后,名称字段也相同。现在我可以更新名称字段。。但是,用户名和密码没有更新。我使用了这个查询-update(['name'=>$name],'username'=>$username],'pw'=>$password]);只需将更新的附加字段添加到->update()方法的数组参数中:update(['name'=>$name,'username'=>$username,'pw'=>$password]);它不适用于action=“edit/{{$users[0]->id}}”,我删除了斜杠。现在它开始工作了。向我显示一条成功的消息。但是,当我检查数据库时,它会显示更新之前的旧数据。这意味着仍然没有更新我的数据。如何修复此问题??由于原始代码,它只更新名称字段,您确定名称字段相同吗?是的,即使在显示成功消息后,名称字段也相同。现在我可以更新名称字段。。但是,用户名和密码没有更新。我使用了这个查询-update(['name'=>$name],'username'=>$username],'pw'=>$password]);只需将更新的附加字段添加到->update()方法的数组参数中:update(['name'=>$name,'username'=>$username,'pw'=>$password]);
<html>
<head>
<body>
<form action="edit/{{$users[0]->id}}" method="post" enctype="multipart/form-data">
{{ method_field('PUT') }}
{{ csrf_field() }}
<div class="form-group">
<label>Name : *</label>
<input type="text" class="form-control" name="name" value="{{$users[0]->name}}" required>
</div>
<div class="form-group">
<label>Username : *</label>
<input type="text" class="form-control" name="username" value="{{$users[0]->username}}" required>
</div>
<div class="form-group">
<label>Password : *</label>
<input type="password" class="form-control" name="password" value="{{$users[0]->pw}}" required>
</div>
<div class="form-group">
<label>Upload Profile Picture :</label>
<input type="file" class="form-control-file" name="file_img" aria-describedby="fileHelp">
<small id="fileHelp" class="form-text text-muted">If U Want , U Can Skip Upload A Profile Picture</small>
</div>
<input type="submit" class="btn btn-primary" name="submit" value="Update">
</form>
</body>
</html>
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class RegViewController extends Controller
{
public function index()
{
return view('RegView');
}
public function show($id) {
$users = DB::select('select * from academic where id = ?',[$id]);
return view('RegViewUpdate',['users'=>$users]);
}
public function edit(Request $request, $id)
{
$name = $request->input('name');
try {
DB::table('academic')
->where('id', $id)
->update(['name' => $name]);
echo "Record updated successfully.<br/>";
} catch (\Exception $ex) {
dd($ex);
}
}
}
Route::get('edit/{id}','RegViewController@show');
Route::put('edit/{id}','RegViewController@edit');