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

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

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

我试过了

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

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

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

【问题讨论】:

  • 是的,它可以是对象数组,因为它可以返回多个原始对象。你期望得到什么回报?

标签: database laravel 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 来自不兼容的上下文
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2021-07-25
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
相关资源
最近更新 更多