Добавление данных в БД с помощью запроса Ax ios приводит к внутренней ошибке сервера - PullRequest
0 голосов
/ 10 февраля 2020

Я создаю форму, используя Vue JS (точнее, библиотеку Vuetify), и, нажимая кнопку «Добавить», я пытаюсь сделать так, чтобы пользовательский ввод был добавлен в базу данных.

База данных имеет 3 столбца: id, type_id, value. Я хочу связать пользовательский ввод со столбцом значения.

Обратите внимание, что allDesserts - это массив, в котором хранятся все элементы в базе данных. Это то, что я хочу добавить.

Как мне этого добиться?

Компонент в моей форме:

    <v-combobox
        :items="allDesserts.map(a => a.value)"
        label="Project Type"
        :search-input.sync="search"
    >
        <template v-slot:no-data> 
            <v-text-field
            label="Add new dessert"
            v-model="search"
            >
            </v-text-field>
                <v-btn 
                @click="enterKey"
                >Add</v-btn>
        </template>
    </v-combobox>

Ax ios запрос / метод:

        enterKey () {
            axios.post('/api/desserts', {
                value: 'key'
            })
                .then(function (response) {
                    console.log(response);
                })
                .catch(function (error) {
                    console.log(error.response);
                });
        }

Мой контроллер:

public function storeDessert(Request $request)
{
    $dropdownType = new DropdownType();
    $dropdownType->attribute_id = $request->input(rand(1, 10000));
    $dropdownType->value = $request->input('value');
    $dropdownType->save();
}

Я получаю следующую ошибку:

"Illegal string offset 'id'"

1 Ответ

0 голосов
/ 10 февраля 2020

Я думаю, что ваша ошибка в этой строке.

$dropdownType->attribute_id = $request->input(rand(1, 10000));

Пусть, скажем, rand(1, 10000) даст вам значение 100, теперь вы использовали это 100, как ключ для доступа к значению в вашем запросы, которых нет в наличии.

Попробуйте посмотреть свой груз. Вы просто передаете данные, которые имеют key value only, этот.

{value: 'key'}

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

$dropdownType->value = $request->input('value');

Но не вот этот.

$dropdownType->attribute_id = $request->input(rand(1, 10000));
...