我正在尝试使用laravel更新记录,我的记录正在成功更新,但是当我单击更新按钮时所有记录都在更新,但我没有解决特定ID的更新,我该如何解决它?
有人有什么想法吗?
控制器
public function updateaction(Request $request,$id)
{
$category=$request->input('select_category');
$project_name=$request->input('product_name');
$updaterecord=DB::table('projects')-
>update(['project_name'=>$project_name,'category_id'=>$category]);
if($updaterecord)
{
return redirect('view_projects');
}
}
html视图
<form action="{{route('project.update', $project->products_id)}}" method="POST"
>
@csrf
<div class="group-form">
<select class="form-control" name="select_category" required>
<option value="" >Select Category</option>
@foreach($categories as $category)
<option value="{{$category->id}}" @if($project->category_id) == $category->id) @endif>
{{$category->category_name}}</option>
@endforeach
</select>
</div>
<br>
<div class="group-form">
<input type="text" class="form-control" value="{{$project->project_name}}"
placeholder="Update Product Name" name="product_name" required >
</div>
<br>
<div class="group-form">
<input type="submit" class=" btn btn-primary form-control" value="UPDATE" name="Update" >
</div>
</form>
路线
Route::post('project_update/{id}/update','AdminController@updateaction')->name('project.update');
您需要更改特定元素,因此使用该ID查找并更新该特定元素。
$project=Project::find($id);
$project->update(['project_name'=>$project_name,'category_id'=>$category]);
控制器您缺少->where(['id'=> $id]);
public function updateaction(Request $request,$id)
{
$category=$request->input('select_category');
$project_name=$request->input('product_name');
$updaterecord=DB::table('projects')
->where(['id'=> $id])->update(['project_name'=>$project_name,'category_id'=>$category]);
if($updaterecord){
return redirect('view_projects');
}
}
in View
如果使用@method('put')
,则添加Resource Route
<form action="{{route('project.update', $project->products_id)}}" method="POST">
@csrf
@method('put')