Показать имя пользователя списка в форме datalist и отправить user_id в таблицу - PullRequest
0 голосов
/ 12 октября 2018

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

это мой контроллер

public function create()
{
    $projects = Project::pluck('project_name', 'id');
    $users = User::pluck('name', 'id');
    // dd($users);
    return view ('teams.create', compact('projects', 'users'));
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    $team = Team::create($request->all());
    dd($team);
    return redirect()->route('team.create');
}

это моя форма данных

<div class="form-group">
  <label for="">Name *</label>
    <input list="user_id" name="user_id" class="form-control" placeholder="Input Name">
      <datalist id="user_id" name="user_id">
         @foreach($users as $user)
           <option value="{{$user}}">
         @endforeach
      </datalist>
 </div>

ошибка error

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

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

Вместо этого можно использовать Typeahead: http://www.runningcoder.org/jquerytypeahead/demo/, что также позволяет использовать свойство id из пользовательского объекта.

если вы введете дополнительное значение, вы должны сначала сохранить его, затем получить его идентификатор и затем добавить его в Team таблицу.

0 голосов
/ 12 октября 2018

Вместо использования compact вы можете сгенерировать новый массив для передачи в шаблон?

$data = [
  'users' => $users,
  'projects' => $projects
];
return view ('teams.create', $data);
...