Laravel-[路线:appraisal.appraisal_goals.manager_employee_goal]缺少必需的参数

时间:2020-02-20 12:31:45

标签: laravel

使用Laravel-5.8,我尝试从以下途径出发:

public function manager_employee_goal($id)
{
    if (! Gate::allows('appraisal_goal_review')) {
        return abort(401);
    }        

    $userCompany = Auth::user()->company_id;
    $userEmployee = Auth::user()->employee_id;
    $identities = DB::table('appraisal_identity')->select('id')->where('company_id', $userCompany)->where('is_current', 1)->first();
    $linemanager = DB::table('hr_employees')->select('line_manager_id')->where('id', $userEmployee)->first();
    $linemanageremployee = DB::table('hr_employees')->select('id')->where('line_manager_id', $linemanager->line_manager_id)->pluck('id');
   $appraisedemployees = HrEmployee::select('id', 'employee_code', 'first_name', 'last_name')->where('id', $id)->get();    

    $goals = AppraisalGoal::where('employee_id', $id)->where('appraisal_identity_id', $identities->id)->where('id', '!=', $linemanager->line_manager_id)->get();

    return view('appraisal.appraisal_goals.manager_employee_goal')->with('goals', $goals)->with('appraisedemployees', $appraisedemployees);        
}

视图:manager_employee_goal.blade

  <a class="btn btn-xs btn-primary" href="{{ route('appraisal.appraisal_goals.manager_employee_goal_list', ['goalid'=>$goal->id]) }}">
           {{ trans('global.view') }}
  </a> 

到此路线:

public function manager_employee_goal_list($goalid)
{
        $goal           =       AppraisalGoal::findOrFail($goalid);
    $goaldetails    = AppraisalGoalDetail::where('appraisal_goal_id', $goalid)->get();
    return view('appraisal.appraisal_goals.manager_employee_goal_list')
                ->with('goal', $goal)
                ->with('goaldetails', $goaldetails);       
}    

使用

Route::get('appraisal_goals/manager_employee_goal/{id}', 'Appraisal\AppraisalGoalsController@manager_employee_goal')->name('appraisal.appraisal_goals.manager_employee_goal');
Route::get('appraisal_goals/manager_employee_goal_list/{goalid}', 'Appraisal\AppraisalGoalsController@manager_employee_goal_list')->name('appraisal.appraisal_goals.manager_employee_goal_list');

但是我得到了这个错误:

缺少[Route:appraisal.appraisal_goals.manager_employee_goal] [URI:appraisal_goals / manager_employee_goal / {id}]所需的参数。 (视图:C:\ xampp \ htdocs \ peopleedge \ resources \ views \ appraisal \ appraisal_goals \ manager_employee_goal_list.blade.php)

如何解决?

谢谢

1 个答案:

答案 0 :(得分:1)

route('appraisal.appraisal_goals.manager_employee_goal_list', ['goalid'=>$goal->id])更改为url('appraisal.appraisal_goals.manager_employee_goal_list', ['id'=>$goal->id])

检查url生成器的用法:-https://laravel.com/docs/6.x/urls#urls-for-named-routes