Laravel Ошибка: слишком мало аргументов для функции, 0 передано и ожидается ровно 1 - PullRequest
0 голосов
/ 20 февраля 2020

Используя Laravel -5.8, у меня есть этот код:

public function manager_employee_list(Request $request)
{

    $employees = HrEmployee::paginate(6);

    return view('appraisal.appraisal_goals.manager_employee_list')->with('employees', $employees);
}

И он отображает это представление: manager_employee_list

      <div class="row d-flex align-items-stretch">
          @if (count($employees))
          @foreach($employees as $key => $employee)
        <div class="col-12 col-sm-6 col-md-4 d-flex align-items-stretch">
          <div class="card bg-light">
            <div class="card-header text-muted border-bottom-0">
              {{isset($employee->designation) ? $employee->designation->designation_name : ''}}
            </div>
            <div class="card-body pt-0">
              <div class="row">
                <div class="col-7">
                  <h2 class="lead"><b>Staff ID: {{$employee->employee_code}}</b></h2>
                  <h2 class="lead"><b>{{$employee->first_name}} {{$employee->last_name}}</b></h2>

                  <h6 class="lead"><b>Employee Department: </b>{{isset($employee->department) ? $employee->department->dept_name : ''}}</h6>
                </div>
                <div class="col-5 text-center">
                            @if($employee->emp_image != '')
                                <img src="{{ URL::to('/') }}/public/storage/employees/image/{{ $employee->emp_image }}" class="img-circle img-fluid" />

                            @else
                                <img class="profile-user-img img-fluid img-circle" src="{{asset('theme/adminlte3/dist/img/default.png')}}" alt="" class="img-circle img-fluid">
                            @endif
                </div>
              </div>
            </div>
            <div class="card-footer">
              <div class="text-right">
                <a href="{{ route('appraisal.appraisal_goals.manager_employee_goal', ['id'=>$employee->id]) }}" class="btn btn-sm btn-primary">
                  <i class="fas fa-user"></i> View Goal
                </a>
              </div>
            </div>
          </div>
        </div>
        @endforeach 
        @else
        <h4 style="text-align:center;">No matching records found</h4>
        @endif           
      </div>

Я хочу передать параметр

['id' => $ employee-> id]

сверху к другому действию контроллера:

public function manager_employee_goal($id)
{

    $goals = AppraisalGoal::where('employee_id', $id)->get();

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

Используется здесь:

$ goal = AppraisalGoal :: where ('employee_id', $ id) -> get ();

Когда я нажал

<a href="{{ route('appraisal.appraisal_goals.manager_employee_goal', ['id'=>$employee->id]) }}" class="btn btn-sm btn-primary">
     <i class="fas fa-user"></i> View Goal
</a>

, я получил эту ошибку:

Слишком мало аргументов для функции App \ Http \ Controllers \ AppraisalGoalsController :: manager_employee_goal (), 0 передано и ожидается ровно 1

, и это подчеркнуто:

publi c function manager_employee_goal ($ id)

route / web. php

Route::get('appraisal_goals/manager_employee_list', 'Appraisal\AppraisalGoalsController@manager_employee_list')->name('appraisal.appraisal_goals.manager_employee_list');
Route::get('appraisal_goals/manager_employee_goal', 'Appraisal\AppraisalGoalsController@manager_employee_goal')->name('appraisal.appraisal_goals.manager_employee_goal');

Как мне решить эту проблему?

Спасибо.

Ответы [ 2 ]

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

Я считаю, что ваш маршрут должен быть обновлен до

Route::get('appraisal_goals/manager_employee_goal/{id}','Appraisal\AppraisalGoalsController@manager_employee_goal')->name('appraisal.appraisal_goals.manager_employee_goal');
0 голосов
/ 20 февраля 2020

Вам необходимо изменить файл web.php. добавьте {id} в URL.

в противном случае все в порядке, так как теперь ваш метод get будет выглядеть как 'appraisal_goals/manager_employee_goal/{id}'

Route::get('appraisal_goals/manager_employee_goal/{id}','Appraisal\AppraisalGoalsController@manager_employee_goal')->name('appraisal.appraisal_goals.manager_employee_goal');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...