[英]Cannot use object of type Illuminate\Database\Eloquent\Builder as array
[英]Cannot use object of type Illuminate\Database\Query\Builder as array
我在這里找不到錯誤我該如何解決?
$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);
方法groupBy()
返回一個QueryBuilder
以將其轉換為數組調用get()
以接收行數組。
->groupBy(...)
->get();
你需要處理返回多行的查詢,所以一個快速的解決方案是使用foreach()
遍歷 db2。
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']]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.