我正在使用Laravel-5.8开发Web应用程序。在CRUD中,我能够创建和查看记录。但是,我在更新和删除时遇到问题。
控制器
class HrHolidayGroupsController extends Controller
{
public function index()
{
$userCompany = Auth::user()->company_id;
abort_unless(\Gate::allows('holiday_group_access'), 403);
if (auth()->user()->isAdmin()) {
$groups = HrHolidayGroup::all();
} else {
$groups = HrHolidayGroup::where('company_id', $userCompany)->get();
}
return view('hr.holiday_groups.index')->with('groups', $groups);
}
public function create()
{
$userCompany = Auth::user()->company_id;
abort_unless(\Gate::allows('holiday_group_create'), 403);
return view('hr.holiday_groups.create');
}
public function store(StoreHolidayGroupRequest $request)
{
abort_unless(\Gate::allows('holiday_group_create'), 403);
$group = HrHolidayGroup::create([
'group_name' => $request->group_name,
'description' => $request->description,
'company_id' => Auth::user()->company_id,
'created_by' => Auth::user()->id,
'created_at' => date("Y-m-d H:i:s"),
'is_active' => 1,
]);
Session::flash('success', 'Holiday Group is created successfully');
return redirect()->route('hr.holiday_groups.index');
}
public function show($id)
{
abort_unless(\Gate::allows('holiday_group_show'), 403);
return view('hr.holiday_groups.show', ['group' => HrHolidayGroup::findOrFail($id)]);
}
public function edit($id)
{
$userCompany = Auth::user()->company_id;
abort_unless(\Gate::allows('holiday_group_edit'), 403);
$group = HrHolidayGroup::where('id', $id)->first();
return view('hr.holiday_groups.edit')->with('group', $group);
}
public function update(UpdateHolidayGroupRequest $request, $id)
{
abort_unless(\Gate::allows('holiday_group_edit'), 403);
$group = HrHolidayGroup::find($id);
$group->group_name = $request->group_name;
$group->description = $request->description;
$group->company_id = Auth::user()->company_id;
$group->updated_by = Auth::user()->id;
$group->updated_at = date("Y-m-d H:i:s");
$group->is_active = 1;
$group->save();
Session::flash('success', 'Holiday Group is updated successfully');
return redirect()->route('hr.holiday_groups.index');
}
public function destroy(Request $request, $id)
{
$group = HrHolidayGroup::find($id);
$group->delete();
Session::flash('success', 'Holiday Group deleted successfully.');
return redirect()->route('hr.holiday_groups.index');
}
routes / web.php
Route::group(['prefix' => 'hr', 'as' => 'hr.', 'namespace' => 'Hr', 'middleware' => ['auth']], function () {
Route::resource('holiday_groups', 'HrHolidayGroupsController');
});
index.php
<tbody>
@foreach($groups as $key => $group)
<td>
{{$key+1}}
</td>
<td>
{{$group->group_name ?? '' }}
</td>
<td>
{{ $group->description ?? '' }}
</td>
<td>
@can('holiday_group_show')
<a class="btn btn-xs btn-primary" href="{{ route('hr.holiday_groups.show', $group->id) }}">
{ trans('global.view') }}
</a>
@endcan
@can('holiday_group_edit')
<a class="btn btn-xs btn-info" href="{{ route('hr.holiday_groups.edit', $group->id) }}">
{{ trans('global.edit') }}
</a>
@endcan
@can('holiday_group_delete')
<a class="btn btn-xs btn-danger" data-toggle="modal" data-target="#confirm-delete{{ $group->id }}" data-original-title="Close">
span style="color:white;">{{ trans('global.delete') }}</span>
</a>
@endcan
<div class="modal fade" id="confirm-delete{{ $group->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Delete Holiday Group</h4>
<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('hr.holiday_groups.destroy',['id'=>$group->id])}}" method="post">
{{ csrf_field() }}
<p>Are you sure you want to delete this Holiday Group?</p>
<div class="modal-header">
<h4>{{ $group->group_name }}</h4>
</div>
</form>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-danger">Delete</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal -->
</td>
</tr>
@endforeach
</tbody>
大约五个月前,我开始使用Laravel,我需要在短时间内完成此项目。我的问题是,当我在编辑/更新表单中单击“保存”按钮时,出现此错误:
此路由不支持PUT方法。支持的方法:GET,HEAD
最初,错误是:
此路由不支持POST方法。
这是编辑表单的我的代码:
edit.blade.php
<form action="{{route('hr.holiday_groups.edit', ['id'=>$group->id])}}" method="post" class="form-horizontal" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="hidden" name="_method" value="PUT">
<div class="form-body">
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="control-label text-right col-md-3">Group Name<span style="color:red;">*</span></label>
<div class="col-md-9 controls">
<input type="text" name="group_name" placeholder="Enter group name here" class="form-control" value="{{old('group_name',$group->group_name)}}" required data-validation-required-message="This field is required">
</div>
</div>
</div>
<!--/span-->
<div class="col-md-6">
<div class="form-group row">
<label class="control-label text-right col-md-3">Description</label>
<div class="col-md-9">
<textarea rows="2" name="description" class="form-control" placeholder="Enter Description here" value="{{old('description',$group->description)}}">{{old('description',$group->group_name)}}</textarea>
</div>
</div>
</div>
</div>
</div>
<div>
<!--<input class="btn btn-primary" type="submit" value="{{ trans('global.save') }}">-->
<button type="submit" class="btn btn-primary">{{ trans('global.save') }}</button>
<button type="button" onclick="window.location.href='{{route('hr.holiday_groups.index')}}'" class="btn btn-default">Cancel</button>
</div>
</form>
我在代码中添加了@method('PUT'),但错误仍然存在。我该如何解决这个问题?
谢谢
答案 0 :(得分:1)
edit
路线用于显示编辑表单。它不是用于处理它。这就是update
的目的。将表格发送至:
route('hr.holiday_groups.update', ['holiday_group' => $group->id])