- 此问题在此处已有答案**:
Trying to get property 'id' of non-object(4个答案)
昨天关门了。
以下是我正在尝试运行的函数。我认为所需的信息正确无误,表中也存在相应的数据,但显示的错误如上所示。以下是我的UserProfileController中的函数。
我尝试将列名从created_at更改为date_checkIn,但显示了相同的错误,两列都存在于数据库表中,如上面的截图所示。
public function userClockOut(Request $r)
{
$result = [];
$result['status'] = false;
$result['message'] = "something error";
$users = User::where('staff_id', $r->staff_id)->select(['staff_id', 'date_checkIn', 'time_checkOut', 'location_checkOut'])->first();
$tt = AttendanceRecord::find($r->tt);
$tt2 = AttendanceRecord::find($r->tt2);
$tz = $tt->created_at;
$tz2 = $tt2->updated_at;
$date = Carbon::createFromFormat('Y-m-d', $tz, 'UTC');
$time = Carbon::createFromFormat('H:i:s', $tz2, 'UTC');
$date->setTimezone('Asia/Singapore');
$time->setTimezone('Asia/Singapore');
$users->date_checkIn = $date;
$users->time_checkOut = $time;
$users->location_checkOut = $r->location_checkOut;
// Save the updated data to the database
AttendanceRecord::updateOrCreate(
['staff_id' => $users->staff_id, 'date_checkIn' => $date],
$users->toArray()
);
$result['data'] = $users;
$result['status'] = true;
$result['message'] = "suksess add data";
return response()->json($result);
}
显示数据库表中存在该列的屏幕截图:
第一个月
2条答案
按热度按时间3pmvbmvn1#
看起来你的
$tt = AttendanceRecord::find($r->tt);
没有返回任何值,所以它抛出了一个错误。要解决这个问题,首先你需要确保$r->tt
有一个值,并且这个值存在于数据库中。下一步是避免该错误,而不是使用find()
方法,您应该使用findOrFail()
,如果给定的id不存在于数据库。还要确保
$r->tt
是表的主键,并确保form
中有tt
属性tjrkku2a2#
找不到
$tt
或$tt2
。