我正在创建数据库通知。我有2个通知类: InterviewRequestReceived.php:
$user = Auth::user();
$interviewRequestReceived = InterviewRequestsReceived::latest()->where('user_id', $user->id)->get();
return [
'date_time1' => $interviewRequestReceived[$interviewRequestReceived->count() - 1]->latest()->get('date_time1'),
'date_time2' => $interviewRequestReceived[$interviewRequestReceived->count() - 1]->latest()->get('date_time2')
];
和InterviewRequestSent.php:
public function toDatabase($notifiable)
{
$user = Auth::user();
$interviewRequestSent = InterviewRequestsSent::latest()->where('user_id', $user->id)->get();
return [
'date_time1' => $interviewRequestSent[$interviewRequestSent->count() - 1]->latest()->get('date_time1'),
'date_time2' => $interviewRequestSent[$interviewRequestSent->count() - 1]->latest()->get('date_time2')
];
}
我有3张桌子。我创建了visits_requests_receiveds,interview_requests_sents,并创建了通知表并进行了迁移。 在我的表格上,日期时间字段有2个选项,因此雇主可以选择2种可能的日期和时间,这些日期和时间将对他们面试应聘者有用。 我的表格正在工作。 除了插入所有已登录用户的日期和时间,而不仅仅是最后插入的记录之外,我的通知仍然有效。
我正在尝试使用Latest(),但是它不起作用。
答案 0 :(得分:1)
根据Laravel文档
通过
latest
和oldest
方法,您可以轻松地订购结果 按日期。默认情况下,结果将按created_at
排序 柱。或者,您可以传递您希望使用的列名
如果要使用最新版本,请使用get()
函数而不是first()
:
如果您的表中已经有created_at
列,那么
$interviewRequestSent = InterviewRequestsSent::latest()->where('user_id', $user->id)->first();
OR
假设您要根据id
列获取最新记录
$interviewRequestSent = InterviewRequestsSent::latest('id')->where('user_id', $user->id)->first();
或者您可以使用以下任何一种方法来获取最后一条记录
InterviewRequestsSent::where('user_id', $user->id)->last();
OR
InterviewRequestsSent::where('user_id', $user->id)->orderBy('id', 'desc')->first();`
参考: