Неверное значение интергера (невозможно сохранить значение в базе данных) - PullRequest
0 голосов
/ 13 марта 2020

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

    public function store(Request $request)
    {
        $leave = $request->get('leave');
        $leave['user_id'] = Auth::id();
        $leave['status_id']= StatusType::find(1);
        $leave = Leave::create($leave);

        return Redirect::to(route('leave.create'));
    }

Показанная ошибка была

Общая ошибка: 1366 Неверное целочисленное значение: '{"id": 1, "status": "Pending", "creation_at": "2020-03-12 08:40:14", "updated_at": "2020-03- 12 08:40:14 "} 'для столбца' status_id 'в строке 1 (SQL: вставить в leaves (type_id, start, end, remarks, user_id, status_id, updated_at, created_at) значения (1, 2020-03-13, 2020-03-14, тест, 2, {"id":1,"status":"Pending","created_at":"2020-03-12 08:40:14","updated_at":"2020-03-12 08:40:14"}, 2020-03-13 07:58:17, 2020-03-13 07:58:17))

Мне нужно только получить идентификатор вместо всей строки. Кто-нибудь?

Ответы [ 3 ]

2 голосов
/ 13 марта 2020

StatusType::find(1) даст вам объект, а не целое значение. Теперь только изменение добавьте coloumn_name как StatusType::find(1)->coloumn_name

Попробуйте, как показано ниже.

public function store(Request $request)
    {


        $leave = $request->get('leave');
        $leave['user_id'] = Auth::id();
        $leave['status_id']= StatusType::find(1)->id ?? 0;
        $leave = Leave::create($leave);

        return Redirect::to(route('leave.create'));
    }
1 голос
/ 13 марта 2020

Вы можете получить значение столбца 'id' из этой единственной строки следующим образом:

$StatusType::find(1)->id;

Ссылка: "Получение одной строки / столбца из таблицы"

1 голос
/ 13 марта 2020

Эта строка возвращает целый $leave объект:

$leave['status_id']= StatusType::find(1);

И ваше поле status_id, вероятно, является целым числом. Поэтому вам нужно изменить его следующим образом:

$leave['status_id']= StatusType::find(1)->id;

, который даст вам вывод целого числа.

Подробнее об официальной документации .

...