为了账号安全,请及时绑定邮箱和手机立即绑定

不能将 Illuminate\Database\Query\Builder 类型的对象用作数组

不能将 Illuminate\Database\Query\Builder 类型的对象用作数组

PHP
叮当猫咪 2022-07-29 12:29:08
我在这里找不到错误,我该如何解决?$db2 = DB::connection('sqlsrv')->table('Checkinout')    ->join('Z_MemRecord','Checkinout.Userid','=','Z_MemRecord.uid')    ->select(DB::raw("FORMAT(MAX (Checkinout.CheckTime), 'hh:mm tt') AS OffTime, FORMAT (min(Checkinout.CheckTime), 'hh:mm tt') AS Ontime, Checkinout.Userid,Z_MemRecord.Uname,FORMAT (Checkinout.CheckTime, 'MMM dd yyyy') as dates,FORMAT (Checkinout.CheckTime, 'dddd') as hour"))    ->groupBy(DB::raw("Convert(Date, Checkinout.CheckTime),Checkinout.Userid,Z_MemRecord.Uname,FORMAT(Checkinout.CheckTime, 'MMM dd yyyy'),FORMAT (Checkinout.CheckTime, 'dddd')"));$result = DB::connection('mysql')->table('netdoc')->insert(['Logid' => $db2['Checkinout.Userid'] ,'name'=> $db2['Z_MemRecord.Uname'],'dates' =>  $db2['dates'],'day'=>$db2['hour'],'Ontime' => $db2['Ontime'],'Offtime' => $db2['OffTime']]);dd($db2);
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

该方法groupBy()返回 aQueryBuilder以将其转换为数组调用get()以接收行数组。


->groupBy(...)

->get();

您需要处理返回多行的查询,因此一个快速的解决方案是使用foreach().


foreach ($db2 as $row) {

    $row = (array) $row;


    $result = DB::connection('mysql')

        ->table('netdoc')

        ->insert(['Logid' => $row['Checkinout.Userid'] ,'name'=> $row['Z_MemRecord.Uname'],'dates' =>  $row['dates'],'day'=>$row['hour'],'Ontime' => $row['Ontime'],'Offtime' => $row['OffTime']]);


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号