Я изучаю Laravel и у меня есть проблема, которую я действительно не могу решить, несмотря на часы поисков в Google. У меня есть три таблицы - проекты, пользователи и руководители проектов. Я пытаюсь создать выпадающий список в проектах edit.blade, в котором будет отображаться имя менеджера проекта путем объединения user_id из таблицы менеджера проекта с идентификатором таблицы пользователей, однако я, очевидно, хочу, чтобы PM_ID был сохраняется, когда пользователь выбирает имя. Я попытался создать соединение в методе редактирования моего контроллера, но мне не повезло. Я установил все свои отношения в модели также, я думаю, что они правильные? Может кто-нибудь сказать мне, где я иду не так?
Моя таблица настроена следующим образом (я пропустил ненужные поля):
Projects:
ID,
Name,
PM_ID
Users:
ID,
Name
Project Managers:
ID,
User_ID
Контроллер проекта:
$project_managers = DB::table('project_managers')
->join('users', 'users.id', '=', 'project_managers.user_id')
->select('users.name', 'project_managers.id')
->lists('users.name', 'project.managers.id')
->get();
return view('admin.projects.edit', compact('project', 'project_managers'));
edit.blade:
<div class="form-group">{!! Form::label('PM_id', 'Project Manager:') !!}{!! Form::select('PM_id', ['' => 'Choose a PM'], $project_managers, null, ['class'=>'form-control']) !!}</div>
Мои отношения:
Проект:
public function project_manager(){
return $this->belongsTo('App\ProjectManager');
}
Управление проектами:
public function user(){
return $this->belongsTo('App\User');
}
Пользователь:
public function project_manager(){
return $this->belongsTo('App\ProjectManager');
}
С этим кодом я получаю следующую ошибку:
FatalThrowableError in AdminProjectsController.php line 97: Call to a member function get() on array
Любое направление по этому вопросу будет с благодарностью!