无效的整数值(无法将值存储到数据库中)

问题描述 投票:1回答:3

我想问。在遇到无法获取ID的问题时,我遇到了整行。

    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,“状态”:“待处理”,“ created_at”:“ 2020-03-12 08:40:14”,“ updated_at”:“ 2020- 03-12 08:40:14“}”表示第1行的'status_id'列(SQL:插入leavestype_idstartendremarksuser_id,[C0 ],status_idupdated_at)值(1,2020-03-13,2020-03-14,test,2,created_at,2020-03-13 07:58:17,2020-03-13 07:58:17))

我只需要获取ID而不是整个行。有人吗?

sql laravel query-builder
3个回答
0
投票

{"id":1,"status":"Pending","created_at":"2020-03-12 08:40:14","updated_at":"2020-03-12 08:40:14"}将给您的对象不是整数值。现在只有更改将StatusType::find(1)添加为coloumn_name

尝试如下。

StatusType::find(1)->coloumn_name

0
投票

此行返回整个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')); } 对象:

$leave

并且您的$leave['status_id']= StatusType::find(1); 字段可能是整数。因此,您需要像这样更改它:

status_id

将为您提供整数的输出。

有关官方$leave['status_id']= StatusType::find(1)->id; 的更多信息。


0
投票

您可以像这样从那一行获取列'id'的值:

documentation

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

© www.soinside.com 2019 - 2024. All rights reserved.