Laravel查询user表返回null:该Eloquent查询语句是否正确?
Laravel 查询返回null的问题分析与解决
你写的查询语句没有执行实际的数据库查询,只是构建了一个查询构造器实例,所以直接输出或使用$query时会得到非预期的结果(看起来像null)。
问题原因
User::where('name', '=', 'John')->select(['name', 'address'])这段代码只是创建了查询的蓝图,并没有向数据库发送请求获取数据。你需要调用查询执行方法才能拿到实际的用户数据。
正确写法
根据你的需求,有两种常用的执行方式:
- 如果只需要获取单个匹配的用户(符合你说的数据库中存在该用户的场景):
$user = User::where('name', '=', 'John')->select(['name', 'address'])->first();
- 如果可能存在多个名为John的用户,想获取所有匹配结果:
$users = User::where('name', '=', 'John')->select(['name', 'address'])->get();
简化写法
where方法的第二个参数默认是=,所以可以简化成:
$user = User::where('name', 'John')->select(['name', 'address'])->first();
执行以上正确语句后,就能拿到包含name和address字段的用户数据了。
内容的提问来源于stack exchange,提问作者juros111222
相关产品推荐
相关产品推荐

