使用 Where 和 Eloquent 获取数据库结果

Posted

技术标签:

【中文标题】使用 Where 和 Eloquent 获取数据库结果【英文标题】:Get database result using Where and Eloquent 【发布时间】:2020-05-16 15:28:07 【问题描述】:

我开始使用 Laravel 框架创建一个新应用程序,我有两个模型 userpreference

用户模型包含:

public function preference()

    return $this->hasOne(Preference::class);

偏好模型包含:

public function user()

    return $this->belongsTo(User::class);

如何在我的控制器中使用 where 语句,即: where preferencesTable.cityField = 'NY'

这是我的控制器代码:

$users = User::where(['field in preference table' => 'NY'])->preference;

我想使用 where 子句获取用户数据和偏好数据

注意:* 我的偏好表中有一个名为 city 的字段

【问题讨论】:

【参考方案1】:

这应该只返回偏好城市 = NY 的用户:

User::whereHas('preference', function($query) 
    $query->where('city', 'NY');
)->get()

【讨论】:

谢谢,为什么我得到 Null $user = Auth::user(); dd($user->gender); Auth::user() 仅在有登录用户时才有效。您应该先登录

以上是关于使用 Where 和 Eloquent 获取数据库结果的主要内容,如果未能解决你的问题,请参考以下文章

将 Haversine 公式与 Laravel eloquent 和多个 where 子句一起使用

使用 Eloquent 在 Laravel 中使用 where 子句访问嵌套的相关对象

Laravel 5.4 Eloquent where parent

使用 eloquent 和 vuejs 时如何检索数据库列

用 eloquent 获取一行虚拟数据

如何更改 Eloquent 集合中结果的顺序?