Как исправить входное значение массива с помощью Laravel / Vue JS - PullRequest
0 голосов
/ 19 февраля 2019

Это проект Laravel 5.У меня есть стандартная форма для отправки.Я пытаюсь отправить идентификаторы каждой выбранной учетной записи из результатов функции поиска, добавленной в компоненте vue.

Данные, по которым выполняется щелчок, затем сохраняются в скрытом вводе формы, называемом "grantUsers".Это имеет возможность хранить более одного значения.Итак, я использовал имя grantUsers [].

После отправки формы в бэкэнд, я добавил значение в DD, и он показывает все значения, но в одном индексе вместо отдельных индексов для каждого.Это затрудняет эффективную обработку данных.

Я, очевидно, неправильно передаю значение в скрытый ввод.Любая помощь будет полезна при разделении каждого ID на отдельные индексы.

Код

<input type="hidden" name="grantedUsers[]" :value="hiddenData">

//hiddenData is an empty array at initialisation.
data() {
  return {
      keywords: null,
      results: [],
      granted: [],
      hiddenData: []
  };
},

addUser(result) {
   this.granted.push(result);
   this.results.splice(this.results.indexOf(result), 1);

   this.hiddenData.push(result.id);
},

removeUser(grantee) {
   this.results.push(grantee);
   this.granted.splice(this.granted.indexOf(grantee), 1);

   this.hiddenData.splice(this.hiddenData.indexOf(grantee.id), 1);
}
//The backend is outputting this on the DD
array:1 [▼
  0 => "1,2"
]

Япытаясь разобраться

array:2 [▼
  0 => "1"
  1 => "2"
]

1 Ответ

0 голосов
/ 19 февраля 2019

Добавление [] к имени поля ввода полезно только тогда, когда у вас есть несколько полей ввода с этим именем.Он не преобразует значение одного поля в массив.

Таким образом, вы можете просто удалить [] из имени и выполнить простое explode в строке, чтобы сделатьэто массив.

dd(explode(',', $request->grantedUsers));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...