Как решить Ошибка преобразования массива в строку? - PullRequest
1 голос
/ 16 апреля 2020

здесь пользователь может выбрать несколько продуктов. Я хочу сохранить эти продукты в базу данных. У меня есть столбец с именем «еда» в базе данных, я хочу сохранить все эти выбранные продукты в этом столбце. просто так enter image description here. Прямо сейчас я получаю эту ошибку Array to string conversion. Если кто-нибудь знает, как это исправить, пожалуйста, скажите мне.

                 state = {
                  food : []
                 }
                       <Form.Item {...formItemLayout} label="Select Foods">
                            {getFieldDecorator('food', {
                                rules: [
                                    {
                                        required: true,
                                        message: 'Please select Food!',
                                    },
                                ],

                            })(<Select
                                mode="multiple"
                                placeholder="Select"
                                style={{ width: 350 }}
                                defaultValue={"Select"}
                                onChange={(e) => { this.setState({ food: e }) }}
                            >
                                <Option value="Pan Cakes">Pan Cakes</Option>
                                <Option value="fried Rice">fried Rice</Option>
                                <Option value="Vegetable Soup">Vegetable Soup</Option>
                                <Option value="Pizza">Pizza</Option>
                                <Option value="crab">crab</Option>
                                <Option value="burger">burger</Option>
                            </Select>
                            )}

                        </Form.Item>

 public function saveFoods(Request $request){
        try {
          $jsonData = json_decode($request->getContent());
          $saveDetails = new Foodmodel();
          $saveDetails->food = $jsonData->food;
          $saveDetails->save();
        } catch (\Exception $e) {
            ErrorHandler::logError($e, 'Error');
            return $this->jsonResponse('error', $e->getMessage());

        }
    }

1 Ответ

2 голосов
/ 16 апреля 2020

Если вы просто пытаетесь сохранить список продуктов в виде строки, разделенной запятыми:

 $saveDetails->food = implode(',', $jsonData->food);

Или еще лучше, добавьте атрибут food к свойству моделей $casts, чтобы автоматически обрабатывать преобразование между массивом и строкой.

См. документы здесь для получения информации о кастинге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...