【发布时间】:2020-06-04 21:24:39
【问题描述】:
在我的 Laravel-5.8 中,我有:
public function manager_employee_goal_list($id)
{
$goal = AppraisalGoal::findOrFail($id);
$goaldetails = AppraisalGoalDetail::where('appraisal_goal_id', $id)->get();
return view('appraisal.appraisal_goals.manager_employee_goal_list')
->with('goal', $goal)
->with('goaldetails', $goaldetails);
}
public function manager_employee_goal_approve(Request $request, $id)
{
$goal = AppraisalGoal::find($id);
$goal->is_approved = 3;
$goal->line_manager_comment = $request->line_manager_comment;
$goal->save();
Session::flash('success', 'Goal is approved');
return redirect()->route('appraisal.appraisal_goals.manager_employee_goal_list');
}
查看:manager_employee_goal_list
<a class="btn btn-xs btn-info" data-toggle="modal" data-target="#approve{{ $goal->id }}" data-original-title="Approve">
Approve
</a>
<div class="modal fade" id="approve{{ $goal->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form action="{route('appraisal.appraisal_goals.manager_employee_goal_approve',['id'=>$goal->id])}}" method="post">
{{ csrf_field() }}
<div class="modal-header">
Approve Goal
</div>
<div class="col-md-12">
<div class="form-group">
<label class="control-label">Comment</label>
<textarea rows="2" name="line_manager_comment" class="form-control" placeholder="Enter Comment here" value="{{old('line_manager_comment')}}" required data-validation-required-message="This field is required"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-success btn-ok">Approve Goal</button>
</div>
</form>
</div>
</div>
</div>
路由/web.php
Route::get('appraisal_goals/manager_employee_goal_list/{id?}', 'Appraisal\AppraisalGoalsController@manager_employee_goal_list')->name('appraisal.appraisal_goals.manager_employee_goal_list');
Route::post('appraisal_goals/manager_employee_goal_approve/{id?}', 'Appraisal\AppraisalGoalsController@manager_employee_goal_approve')->name('appraisal.appraisal_goals.manager_employee_goal_approve');
当我在模态表单上提交时,它会保存但无法重定向到:
return redirect()->route('appraisal.appraisal_goals.manager_employee_goal_list');
显示此错误
函数 App\Http\Controllers\Appraisal\AppraisalGoalsController::manager_employee_goal_list() 的参数太少,通过了 0 个,预期正好 1 个
我该如何解决?
谢谢
【问题讨论】:
-
我想你可以
return redirect()->route('appraisal.appraisal_goals.manager_employee_goal_list', $goal->id); -
还有一个问题,你的路由是
{id?},也就是说id是可选的,但是在你的函数中是强制的,建议使用public function manager_employee_goal_list($id = null)或者Route::get('appraisal_goals/manager_employee_goal_list/{id}', 'Appraisal\AppraisalGoalsC...跨度> -
是的,如果你想要可选参数不要使用 findOrFail 和以下逻辑
标签: laravel