Как использовать рекурсивные отношения в Laravel?

Я использую одну таблицу User для хранения информации трех разных пользователей. Сначала я создал родителя с одним parent_id, и теперь я хочу создать ученика и дать ссылку на родительский идентификатор.

Моя таблица имеет идентификатор, parent_id, имя, задание и т. Д. Когда родитель регистрируется, он устанавливает новый идентификатор, parent_id, имя, задание. Когда студент будет зарегистрирован, он установит новый идентификатор, имя и parent_id, сохраненные ранее.

Я новичок в Laravel 5.7, и у меня возникают проблемы с синтаксисом для хранения родительской записи вместе с отчетом ученика.

2 ответа

Если я вас правильно понимаю, вы хотите сделать пользователя родителем других пользователей. Например, у ученика будет родитель, который также является пользователем. Если это так, вам понадобится реализовать вашу пользовательскую модель, как показано ниже:

class User extends Model
{
     public function parent(){
           return $this->belongsTo('App\User','parent_id');
     }
     public function children(){
           return $this->hasMany('App\User','parent_id');
     }
}

Таким образом, вы можете получить доступ к детям и родителям ваших пользователей.

Я согласен с Али Mrj Используйте стиль Али Mrj, чтобы установить отношения..

class User extends Model
{
  public function parent(){
        return $this->belongsTo('App\User','parent_id');
  }
  public function children(){
       return $this->hasMany('App\User','parent_id');
  }
}

затем вы используете стиль umefarooq для вставки данных. создать родительскую запись, получить ее идентификатор в качестве parent_id для sudent, затем создать студенческую запись

как вы можете получить последний идентификатор? это зависит от вашего стиля. я думаю о 2 решении прямо сейчас..

  1. получить все id_parent, а затем использовать его в
  2. получить последний идентификатор родителя из базы данных.

как получить последний id_parent?

$last_user = User::where('job','teacher')->orderBy('id','desc')->get()
Другие вопросы по тегам