Laravel - отсутствуют обязательные параметры для [Route: appraisal.appraisal_goals.manager_employee_goal] - PullRequest
2 голосов
/ 20 февраля 2020

С 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);        
}

view: 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_ppraisal_goals \ manager_employee_goal_list.blade. php)

Как мне решить это?

Спасибо

1 Ответ

1 голос
/ 20 февраля 2020

Измените 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-routs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...