простое отношение один ко многим laravel - PullRequest
0 голосов
/ 11 января 2020

У меня есть пользователь (ADMIN) и студент. Я хочу, чтобы они были в одной таблице на контроллере приборной панели. Не могу найти точный ответ при поиске. Пожалуйста, помогите мне

Модель студента

public function user()
{
    return $this->belongsTo("App\User", 'User_id', 'id');
}

Модель пользователя

public function student()
{
    return $this->hasMany("App\Student");
}

DashboardController

$users = User::with('user_id');

return view('superadminpage.admin_table')->with('users', $users);

Ответы [ 3 ]

1 голос
/ 11 января 2020

сначала измените User_id на user_id в модели студента

 public function user()
        {
            return $this->belongsTo("App\User", 'user_id');
        }

второе изменение в DashboardController

 $users = User::with('user_id'); to $users = User::with('student')->all();

сначала измените User_id на user_id в модели студента

 public function user()
        {
            return $this->belongsTo("App\User", 'user_id' , 'id');
        }

второе изменение в DashboardController

 $users = User::with('user_id'); to $users = User::with('student')->all();

также полезно изменить в пользовательской модели public function student() на public function students() и вызвать в DashboardController $users = User::with('students')->all();

0 голосов
/ 11 января 2020

publi c функция users () {

    return $this->hasMany('App\User');

}

publi c function role ()

{
  return $this->belongsTo('App\Role');
}
0 голосов
/ 11 января 2020

Изменить код модели студента следующим образом:

public function user(){
     return $this->belongsTo("App\User");
}

Также отредактируйте модель пользователя:

   public function students(){
        return $this->hasMany("App\Student");
   }

, затем используйте в DashboardController

 $users = User::query()->with("students")->all();

 return view('superadminpage.admin_table')->with('users', $users );

, тогда вы можете сделать это:

foreach($users as $user){
    $students = $user->students;

    // use
}
...