我收到这个小问题。以下是源代码
医生模型:
class Doctor extends Model {
......
....
public function specialization() {
return $this->HasMany('App\Specialization');
}
}
专业化模型:
class Specialization extends Model {
......
....
public function doctor () {
return $this->belongsTo('App\Doctor', 'id');
}
}
专业化模型:
这里spec_id是一个外键
class DoctorController extends Controller
{
......
....
//Create a Doctor
public function createDoctor(Request $request) {
$doctor = new Doctor();
$doctor->doctor_id = $request->input('doctor_id');
// $doctor->spec_id = $request->input('spec_id');
$doctor->spec_id = $request->specialization()->id;
$doctor->dob = $request->input('dob');
$doctor->age = $request->input('age');
$doctor->gender = $request->input('gender');
$doctor->qualification = $request->input('qualification');
$doctor->experience = $request->input('experience');
$doctor->phone_number = $request->input('phone_number');
// $doctor->email = $request->user()->email;
$doctor->email = $request->input('email');
// $doctor->user_id = $request->user()->user_id;
$doctor->user_id = $request->input('user_id');
$doctor->save();
return response()->json(['doctor' => $doctor], 201);
}
}
请告诉我如何解决。
答案 0 :(得分:0)
错误很可能来自... = $request->specialization()->id;
,其中specialization()方法不存在。错误消息还提到了Macroable,这使我相信您在方法签名中对请求外观进行了类型提示,而不是正确的Illuminate\Http\Request
类型。
检查文件顶部的use-statements。
答案 1 :(得分:0)
我认为在请求中没有专门化,你尝试使用Log,找出请求有什么
答案 2 :(得分:0)
Request $request
不是一个雄辩的模型。
尝试使用 $ doctor而不是$ request
$doctor->specialization->id
我相信你能够获得身份证明。
此外,HasMany拼写错误。更改'H' - > 'h' 的强>