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

如何使用 Laravel 获取带有 where 子句的表中的最后一条记录?

如何使用 Laravel 获取带有 where 子句的表中的最后一条记录?

PHP
人到中年有点甜 2022-10-28 15:45:44
我正在创建数据库通知。我有 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 张桌子。interview_requests_receiveds、interview_requests_sents 和我创建了通知表并进行了迁移。在我的表格上,我有 2 个日期时间字段选项,因此雇主可以选择 2 个可能的日期和时间来面试候选人。我的表格正在工作。我的通知正在工作,只是它插入了所有登录用户的日期和时间,而不仅仅是最后插入的记录。我正在尝试使用 latest(),但它不起作用。
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

根据 Laravel 文档

和方法允许您轻松地latest日期排序结果。默认情况下,结果将按 列排序。或者,您可以传递您希望排序的列名oldestcreated_at

如果你想使用 latest then 而不是get()使用first()函数:

如果created_at您的表中已经有列,那么

$interviewRequestSent = InterviewRequestsSent::latest()->where('user_id', $user->id)->first();

或者

假设您想根据id列获取最后一条记录

 $interviewRequestSent = InterviewRequestsSent::latest('id')->where('user_id', $user->id)->first();

或者您可以使用以下任何方法获取最后一条记录

InterviewRequestsSent::where('user_id', $user->id)->last();

或者

InterviewRequestsSent::where('user_id', $user->id)->orderBy('id', 'desc')->first();`

参考:

Laravel -> 查询生成器 -> 最新方法


查看完整回答
反对 回复 2022-10-28
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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