laravel 如何从数据库中选择一条记录?[duplicate]

9ceoxa92  于 2023-03-13  发布在  其他
关注(0)|答案(4)|浏览(166)

此问题在此处已有答案

(23个答案)
2天前关闭。
我想从用户表的名称和地址列中选择名称为John的列。此查询返回空。我知道数据库中有名称为John的用户。我想知道此查询是否是属性?

$query = User::where('name', '=', 'John')->select(['name', 'address']);
ve7v8dk2

ve7v8dk21#

$query = User::select('name', 'address')->where('name', '=', 'John')->first();

您没有运行查询,您需要返回集合的get(),或者如果要检索单个记录,则需要first()
对于你的情况,我认为first()更适合。
或者按照你的方法,你不需要选择在最后,而是:

$query = User::where('name', '=', 'John')->get(['name', 'address']);
woobm2wo

woobm2wo2#

你可以简单地用这个

$query = User::select('name', 'address')->where('name', '=', 'John')->first();
xqnpmsa8

xqnpmsa83#

您可以使用first(),它执行以下操作:

  • 将结果限制为1
  • 获取所有记录
  • 从集合中获取第一条记录

在代码中,您将发现:

public function first($columns = ['*'])
{
    return $this->take(1)->get($columns)->first();
}

请注意,first()带有您要选择的列的参数。因此,在您的情况下,您可以用途:

User::where('name', '=', 'John')->first(['name', 'address']);

// Or a prettier solution in my opinion
User::whereName('John')->first(['name', 'address']);
djp7away

djp7away4#

只需在末尾调用get()

$query = User::where('name', 'John')->select(['name', 'address'])->get();

注意:可能您区分大小写的方式不准确。我的意思是用户名可能是“john”而不是“John”

相关问题