Laravel:按列值检索记录

Posted

技术标签:

【中文标题】Laravel:按列值检索记录【英文标题】:Laravel: Retrieving A Record By Column Value 【发布时间】:2016-05-19 09:48:43 【问题描述】:

如何通过列的值获取记录。例如,我想要列“foo”的值为“bar”的数据集。

我没有将“foo”标记为唯一键,但如果有必要我可以这样做。

我试过了

$order = Order::where('foo', '=', $bar)->get();

但我认为这不仅会返回一个数据集,还会返回一组数据集,对吗?

文档很差,我无法通过谷歌找到足够的答案。这对于一个orm来说是一个简单的任务,我不知道它为什么这么复杂。

【问题讨论】:

是的,它可以是对象数组,因为它可以返回多个原始对象。你期望得到什么回报? 【参考方案1】:

给你。如果要第一个单独返回。使用->get() 将始终返回一个可数组对象

$order = Order::where('foo', $bar)->first();

如果你想让它可重复使用,那么你应该这样做。在Order.php 模型中(假设它是一个 Eloquent 模型)。

public static function scopeFoo($query, $value) 
    return $query->where('foo', $value);

现在您可以在控制器或任何地方执行此操作

Order::foo($bar)->first()

【讨论】:

hm 它告诉我:非静态方法 App\Order::getByOrderIdent() 不应该被静态调用,假设 $this 来自不兼容的上下文

以上是关于Laravel:按列值检索记录的主要内容,如果未能解决你的问题,请参考以下文章

ListView 按列值分组

按列值对 MySQL 表进行分区

Spark partitionBy |按列值而不是 columnName=value 保存

sh 按列值拆分CSV

Oracle - sql - 日期差异 - 按列值

Python/Pandas - 按列值删除重复行