Как вставить несколько идентификаторов и сохранить в базе данных - PullRequest
0 голосов
/ 15 апреля 2020

Я использую Laravel 7 и пытаюсь создать систему автоматизации.
Для отправки писем я должен иметь возможность выбрать несколько получателей.

Вот таблица букв: enter image description here

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

Это мой выбор:

<select class="col-12 border mt-2 pt-2" multiple="multiple" name="recieve_id[]">
  @foreach($users as $user)
    <option value="{{ $user->id }}">{{ $user->name }}</option>
  @endforeach
</select>

Это мой контроллер:

Letter::create([
  'indicator_id' => $request['indicator_id'],
  'sender_id' => auth()->user()->id,
  'recieve_id' => $request['recieve_id'],
  'title' => $request['title'],
  'image' => 'default.png',
  'description' => $request['description'],
  'date' => $request['date'],
  'text' => $request['text'],
]);
return redirect(route('Letter.index'));

Редактировать:

Вот структура таблицы: enter image description here

Редактировать 2:

Вот моя функция восстановления букв: Функция удаления

1 Ответ

0 голосов
/ 15 апреля 2020

Если я правильно понимаю ваш вопрос, код, который вы написали в контроллере, работает неправильно или не создает запись в базе данных. Это правильно?

Если да, то можете ли вы предоставить мне структуру таблицы, которую вы используете для Letter, а также миграцию, которую вы написали для этой конкретной таблицы?

Я не уверен но кажется, что вы передаете массив $reciever_id вместо строки и / или JSON string.

Кроме того, если таблица на предоставленном вами скриншоте должна использоваться в качестве журнала, то я предложил бы перебрать $receiver_id и сделать отдельную запись для каждого получателя, если это возможно. Я думаю, что это может быть лучшим подходом.

РЕДАКТИРОВАТЬ: После прочтения вашего комментария я изменяю свой ответ, как показано ниже: В этом случае вы должны обработать запрос с foreach l oop, как показано ниже:

$receiver_ids = $request->receive_ids
foreach($receiver_ids as $receiver_id)
{
    Letter::create([
        'indicator_id' => $request['indicator_id'],
        'sender_id' => auth()->user()->id,
        'recieve_id' => $receiver_id,
        'title' => $request['title'],
        'image' => 'default.png',
        'description' => $request['description'],
        'date' => $request['date'],
        'text' => $request['text'],
    ]);
}

Поместите этот код в свой контроллер. И дай мне знать.

...