Php Laravel资源路由未使用{method_字段(';PATCH';)}在数据库中更新
当我点击更新按钮时,LaravelPhp Laravel资源路由未使用{method_字段(';PATCH';)}在数据库中更新,php,laravel,laravel-5,routes,Php,Laravel,Laravel 5,Routes,当我点击更新按钮时,LaravelresourceRoute并没有更新,但它在同一进程中有存储 我正在使用data toggle=“modal”更新我的值,但它不是更新我的类别吗 我的问题到底在哪里?我检查我的id是否正确传递,但它不会传递给我的更新控制器函数。我使用dd($request->all())进行检查 我的路线是 Route::resource('/mother-category', 'MotherCategoryController'); 我的更新和存储功能是 public f
resource
Route并没有更新,但它在同一进程中有存储
我正在使用data toggle=“modal”
更新我的值,但它不是更新我的类别吗
我的问题到底在哪里?我检查我的id是否正确传递,但它不会传递给我的更新控制器函数。我使用dd($request->all())进行检查控制器中我的更新函数中的代码>
我的路线是
Route::resource('/mother-category', 'MotherCategoryController');
我的更新和存储功能是
public function store(Request $request)
{
$validator =Validator::make($request->all(), [
'mother_name' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator);
}
MotherCategory::insert([
'mother_name'=>$request->mother_name
]);
return redirect()->back()->with('message','Mother Category Created Successfully');
}
public function update(Request $request, MotherCategory $motherCategory)
{
$motherCategory->update([
'mother_name' => $request->mother_name
]);
return redirect()->back()->with('message','Mother Category Updated successfully');
}
我的刀锉是
@extends('layouts.master')
@section('title', 'Add Mother Category')
@section('content')
<div class="container">
<div class="row">
<div class="col-lg-10 mx-auto">
<form action="{{route('mother-category.store')}}" method="post">
@csrf
<div class="card">
<div class="card-header">
<h4 style="text-align: center">Add a mother category</h4>
</div>
<div class="card-body">
<div class="form-row mb-3">
<div class="col">
<small class="text-uppercase text-dark">Mother Category<span
class="required text-danger">*</span></small>
<input type="text" id="mother_name" name="mother_name" class="form-control"
placeholder="Mother Category" required>
@if ($errors->has('mother_name'))
<small
class="form-control-feedback text-danger">{{ $errors->first('mother_name') }}</small>
@endif
</div>
</div>
<div class="form-row mb-3">
<div class="col">
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> Add
</button>
<button type="button" class="btn btn-inverse">Cancel</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<div class="card comp-card">
<div class="card-body">
<h5 class="w-100 text-center">All Mother categories</h5>
<div class="table-responsive">
<table class="table table-hover" id="motherTable">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
@foreach(App\Models\MotherCategory::all() as $index => $mc)
<tr>
<th scope="row">{{$index+1}}</th>
<td>{{$mc->mother_name}}</td>
<td>
<a href="#" class="btn btn-sm btn-info" data-toggle="modal"
data-target="#exampleModalCenter{{$mc->id}}">Edit</a>
<a id="deleteBtn" data-id="{{$mc->id}}" href="#"
class="btn btn-sm btn-danger">Delete</a>
</td>
</tr>
<div class="modal fade" id="exampleModalCenter{{$mc->id}}" tabindex="-1" role="dialog"
aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalCenterTitle">Update</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="{{route('mother-category.update',$mc->id)}}"
method="post">
{{ csrf_field() }}
{{method_field('PATCH')}}
<div class="form-group">
<label for="exampleInputEmail1">Name</label>
{{-- <input type="hidden" name="id" value="{{$mc}}"> --}}
<input name="mother_name" type="text" class="form-control"
id="exampleInputEmail1" aria-describedby="emailHelp"
placeholder="Enter mother category"
value="{{$mc->mother_name}}"><br><br>
<input type="submit" class=" btn btn-success"
value="Update">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Close
</button>
</div>
</div>
</div>
</div>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.5/js/bootstrap-select.min.js"></script>
<script>
$('#motherTable').DataTable({
});
</script>
<script>
$(document).on('click', '#deleteBtn', function (el) {
var mcId = $(this).data("id");
swal({
title: "Are you sure?",
text: "Once deleted, you will not be able to recover this category!",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
swal("You have deleted a mother category!", {
icon: "success",
});
window.location.href = window.location.href = "mother-category/delete/" + mcId;
}
});
});
$(document).on('click', '#deleteNo', function (el) {
swal("Oops", "You can't delete this. Some item belongs to it!!", "error")
})
</script>
@endsection
@扩展('layouts.master')
@节(“标题”,“添加主类别”)
@节(“内容”)
@csrf
添加一个母亲类别
母类*
@如果($errors->has('mother\u name'))
{{$errors->first('mother_name')}
@恩迪夫
添加
取消
所有母亲类别
#
名称
行动
@foreach(App\Models\MotherCategory::all()作为$index=>$mc)
{{$index+1}}
{{$mc->mother_name}
更新
&时代;
{{csrf_field()}}
{{method_字段('PATCH')}
名称
{{-- --}}
接近
@endforeach
@端部
@节(“脚本”)
$('#motherTable')。数据表({
});
$(文档).on('单击','删除BTN',函数(el){
var mcId=$(this.data(“id”);
游泳({
标题:“你确定吗?”,
text:“一旦删除,您将无法恢复此类别!”,
图标:“警告”,
按钮:是的,
丹格莫德:没错,
})
。然后((将删除)=>{
如果(将删除){
swal(“您已删除了一个母亲类别!”{
图标:“成功”,
});
window.location.href=window.location.href=“母亲类别/删除/”+mcId;
}
});
});
$(文档).on('click','#deleteNo',函数(el){
swal(“哎呀”,“你不能删除这个。某些项目属于它!!”,“错误”)
})
@端部
呈现html
<div role="document" class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header"><h5 id="exampleModalCenterTitle" class="modal-title">Update</h5>
<button type="button" data-dismiss="modal" aria-label="Close" class="close"><span
aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<form action="http://localhost:8000/mother-category/2" method="POST"></form>
<input type="hidden" name="_token" value="F0fzi1ufy2sO9r8apQ6NTrDtDgfGqycpEiUvaMEG"> <input type="hidden"
name="_method"
value="PUT">
<div class="form-group"><label for="exampleInputEmail1">Name</label> <input name="mother_name" type="text"
id="exampleInputEmail1"
aria-describedby="emailHelp"
placeholder="Enter mother category"
value="Plaster & gypsum board."
class="form-control fill user-success"><br><br>
<input type="submit" value="Update" class=" btn btn-success"></div>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-secondary">Close
</button>
</div>
</div>
</div>
更新
×
名称
接近
将{{method_字段('PATCH')}}
替换为{{method_字段('PUT')}
或者您可以使用刀片指令@method('PUT')
@方法('PUT')
...
刃锉
控制器
正如注释中所述,问题在于表单正在直接关闭,因为它可以在html中看到
<div class="modal-body">
<form action="http://localhost:8000/mother-category/2" method="POST"></form>
<input type="hidden" name="_token" value="F0fzi1ufy2sO9r8apQ6NTrDtDgfGqycpEiUvaMEG">
<input type="hidden" name="_method" value="PUT">
...
...
由于刀片未直接关闭(见下文)
{{cs
<form method="POST" action="{{ route('admin.category.update',$category->id) }}">
@csrf
@method('PUT')
<div class="form-group form-float">
<div class="form-line">
<input value="{{ old('name') }}{{ $category->name }}" name="name" type="text" class="form-control">
<label class="form-label">{{ __('Name') }}</label>
</div>
</div>
<br>
<a href="{{ route('admin.category.index') }}" class="btn btn-danger m-t-15 waves-effect">{{ __('BACK') }}</a>
<button type="submit" class="btn btn-primary m-t-15 waves-effect">{{ __('SUBMIT') }}</button>
</form>
Route::resource('category','CategoryController');
});
public function edit($id)
{
$category =Category::find($id);
return view('admin.category.edit',compact('category'));
}
public function update(Request $request, $id)
{
$this->validate($request,[
'name' => 'required|unique:categories'
]);
$category = Category::find($id);
$category->name = $request->name;
$category->slug = str_slug($request->name);
$category->save();
Toastr::success('Category Successfully Updated','Success');
return redirect()->route('admin.category.index');
}
<div class="modal-body">
<form action="http://localhost:8000/mother-category/2" method="POST"></form>
<input type="hidden" name="_token" value="F0fzi1ufy2sO9r8apQ6NTrDtDgfGqycpEiUvaMEG">
<input type="hidden" name="_method" value="PUT">
...
<form action="{{route('mother-category.update',$mc->id)}}" method="post">
{{ csrf_field() }}
...