Как использовать рекурсивные отношения в Laravel? - PullRequest
0 голосов
/ 12 января 2019

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

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

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

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Я согласен с Али Мрджем. Для установления отношений используйте стиль Али Мрдж.

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()
0 голосов
/ 12 января 2019

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

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

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

...