App \ Http \ Controllers \ DoctorController :: edit()缺少参数1

时间:2017-10-04 17:12:17

标签: laravel laravel-5.4

嘿我正在制作一个编辑页面供用户编辑信息,但我收到了这个错误。

控制器代码为:

public function edit($id)
{
    $doctor = Doctor::find($id);
    // Redirect to state list if updating state wasn't existed
    if ($doctor == null || count($doctor) == 0) {
        return redirect()->intended('doctor/doctorList');
    }
    return view('doctor/doctorEdit', ['doctor' => $doctor]);
}

我的路线是:

Route::get('doctor/doctorEdit/edit','DoctorController@edit')->name('doctor.edit');

我的观点是:

   <a href="{{ route('doctor.edit', ['id' => $doctor->id]) }}" class="btn btn-warning col-sm-3 col-xs-5 btn-margin" style="width:100px; margin-left:20px;">
                    Update
                    </a>

请让我知道我做错了什么。

3 个答案:

答案 0 :(得分:3)

由于您的控制器方法正在接受参数,因此您的路线需要在其中包含参数。

Route::get('doctor/{doctor}/edit','DoctorController@edit')->name('doctor.edit');

答案 1 :(得分:0)

您没有在路径文件中传递通配符(参数)。

更改您的路线,以匹配与特定医生相关的主键,它可以是用户名或只是ID。

 Route::get('doctor/{id}/doctorEdit/edit','DoctorController@edit')->name('doctor.edit');

确保根据目录

正确传递通配符

在控制器中使用该通配符

public function edit($id)
{
    $doctor = Doctor::where('id', $id)->first();
    // Redirect to state list if updating state wasn't existed
    if ($doctor == null || count($doctor) == 0) {
        return redirect()->intended('doctor/doctorList');
    }
    return view('doctor/doctorEdit', ['doctor' => $doctor]);
}

答案 2 :(得分:0)

你的路线没有参数,所以改变路线。

从此。

Route::get('doctor/doctorEdit/edit','DoctorController@edit')->name('doctor.edit');

到这个

Route::get('doctor/doctorEdit/edit/{id}','DoctorController@edit')->name('doctor.edit');

或者您可能希望使用相同的方法发布

Route::match(['get', 'post'], 'doctor/doctorEdit/edit/{id}','DoctorController@edit')->name('doctor.edit');