首页 > 解决方案 > Laravel 错误:函数的参数太少,传递了 0,预期正好 1

问题描述

使用 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);        
}

它在这里使用它:

$goals = 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\Appraisal\AppraisalGoalsController::manager_employee_goal() 的参数太少,通过了 0,预期正好 1

下划线:

公共职能 manager_employee_goal($id)

路由/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');

我该如何解决?

谢谢你。

标签: laravel

解决方案


我相信您的路线需要更新为

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

推荐阅读