【问题标题】:Invalid interger value (Unable to store value into database)无效的整数值(无法将值存储到数据库中)
【发布时间】:2020-06-25 06:16:52
【问题描述】:

我想问一下。我在无法获取 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,"status":"Pending","created_at":"2020-03-12 08:40:14","updated_at":"2020 -03-12 08:40:14"}' 用于第 1 行的列 'status_id'(SQL:插入 leavestype_idstartendremarksuser_id,@ 987654328@, 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))

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

【问题讨论】:

    标签: sql laravel query-builder


    【解决方案1】:

    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'));
        }
    

    【讨论】:

      【解决方案2】:

      此行返回整个$leave 对象:

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

      您的status_id 字段可能是整数。所以你需要像这样改变它:

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

      这会给你一个整数的输出。

      更多关于官方documentation

      【讨论】:

        【解决方案3】:

        您可以像这样从该单行中获取“id”列的值:

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

        参考:"Retrieving A Single Row / Column From A Table"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-03
          • 2019-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多