Как использовать рекурсивные отношения в 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 решении прямо сейчас..
- получить все id_parent, а затем использовать его в
- получить последний идентификатор родителя из базы данных.
как получить последний id_parent?
$last_user = User::where('job','teacher')->orderBy('id','desc')->get()