database - laravel - 获取最后一条记录
问题描述
我有这个查询
$user->orders->where('service_id',$request->service_id)->first();
我需要得到最后一个元素,我该怎么做?
没有created_at
专栏所以我不能使用latest()
解决方案
latest()
再次尝试方法并给他们一个参数。
$user->orders()
->where('service_id', $request->service_id)
->latest('id')
->first();
Eloquent的latest()
方法:
/**
* Add an "order by" clause for a timestamp to the query.
*
* @param string $column
* @return $this
*/
public function latest($column = null)
{
if (is_null($column)) {
$column = $this->model->getCreatedAtColumn() ?? 'created_at';
}
$this->query->latest($column);
return $this;
}
此方法在内部使用created_at
,但接受您想要的特定列。我建议使用这种方法而不是->orderBy()->frist()
. 这为您提供了更多的可读性和可维护性。
推荐阅读
- angular - 角度秒表管道:检查后表达式已更改。以前的值
- bash - 在 jenkins 管道中找不到 docker 的 ~/.bashrc 中的别名
- apache-spark - 使用 UDF 计算两个向量之间的距离是否效率低下?
- php - Laravel 唯一规则集忽略当前用户 id
- git - 从远程更新(获取+重置)分支A,在获取后没有拉动?
- php - 无法在 Elasticsearch 中创建索引
- git - 如何使用 buildbot 构建每个标签?
- vuejs2 - Vue JS 组件监听孙子组件的事件
- javascript - 如何使用 react-spring 创建视差固定标题
- ios - iOS 中未声明类型 AudioDeviceID 的使用