Как обновить / синхронизировать данные таблицы для каждой строки из массива поля ввода? - PullRequest
0 голосов
/ 14 апреля 2019

Итак, у меня есть несколько полей ввода в массив

<input type="text" name="messages[{{ $i }}]" id="messages" class="form-control" >

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

В настоящее время у меня есть это, и это на самом деле работает, проблема в том, что он сохраняет строки в базе данных таким странным образом, что они не располагаются впорядок.

Так что в моей User модели у меня есть это

public function messages() {
      return $this->hasMany(Message::class);
}

Когда я нажимаю кнопку обновления на моей странице, в моем UserController у меня есть это:

$user = User::find($id);

$user->name = $request->name;
$user->lastname = $request->lastname;

$user->save();

$user->messages()->delete();

if(is_array($request->messages)) {
  foreach($request->messages as $message) {
      if(!empty($message)){
         $user->messages()->create(['user_id' => $user->id, 'message' => $message]);
       }
   }
}

Так что это работает, но порядок сообщений в таблице не в порядке:

+----+---------+--------------------------+
| id | user_id |         message          |
+----+---------+--------------------------+
|  6 |      12 | This is third message    |
|  5 |      12 | And now second message   |
|  4 |      12 | First message            |
|  7 |      12 | This should be forth one |
+----+---------+--------------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...