Я строю систему, в которой у пользователя может быть много учителей (модель того же пользователя), а у учителей может быть много пользователей. Когда я нажимаю на контроллер, я получаю:
BadMethodCallException с сообщением «Вызов неопределенного метода App / User :: teacher ()
Код
Контроллер
public function requestTeacher()
{
$teacher = User::where(['hashed_id' => 'auserhash123', 'is_teacher' => 1])->first();
$user = auth()->user()->first();
$teacher->notify(new teacherRequest($user));
$user->teachers()->attach($teacher->id);
}
Модель пользователя
public function teachers()
{
return $this->belongsToMany('App\User','teacher_approval','user_id','teacher_id');
}
public function clients()
{
return $this->belongsToMany('App\User','teacher_approval','teacher_id','user_id');
}
Таблица подтверждения_ учителя
Schema::create('teacher_approval', function (Blueprint $table) {
$table->unsignedInteger('user_id');
$table->unsignedInteger('teacher_id');
$table->unsignedInteger('status')->default(0);
$table->timestamp('decission_date')->nullable();
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade');
$table->foreign('teacher_id')->references('id')->on('users')
->onDelete('cascade');
});
Редактировать:
Интересно, это потому, что пользователь расширяет SparkUser (я использую laravel Spark) class User extends SparkUser { }