[英]how to condition same time data to insert and update in laravel
我會嘗試如果在今天的日期,任何行插入然后更新值使用 id 如果沒有任何行今天的日期然后插入一個新行。 但問題是更新值有效但未插入新行消息是“嘗試獲取非對象的屬性'日期'”
public function present($id){
$user = User::find($id);
$date = date('Y-m-d');
$id = $user->id;
$Attendance= Attendance::where('User_A_ID','=',$id)->first();
if($Attendance->Date == $date){
$Attendance->A_sts = '0';
$Attendance->Date = $date;
$Attendance->User_A_ID = $user->id;
$Attendance->save();
} else {
$Attendance= new Attendance();
$Attendance->A_sts = '0';
$Attendance->Date = $date;
$Attendance->User_A_ID = $user->id;
$Attendance->save();
}
return back();
}
如果我對您的理解正確,您想要更新屬於該用戶的現有出勤或在用戶沒有出勤時創建新出勤。
您可以簡化代碼:
public function present($id)
{
$user = User::findOrFail($id);
$date = date('Y-m-d');
$Attendance = Attendance::firstOrNew(['User_A_ID' => $user->id, 'Date', $date]);
$Attendance->User_A_ID = $user->id;
$Attendance->Date = $date;
$Attendance->A_sts = '0';
$Attendance->save();
return back();
}
使用findOrFail
檢查用戶是否存在,然后使用firstOrNew
檢索今天的現有出勤或創建一個新的實例,這樣您就可以擺脫您的if
語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.