我有两个表:成员(用户数据,电子邮件等)和用户(用户名,密码等)。所有用户都是成员,但并非所有成员都是用户。我在laravel中定义了这种关系:
Member.php
public function user() {
return $this->hasOne('App\Models\User');
}
现在,我希望能够通过电子邮件或用户名(如果存在)检索会员的数据而不使用join()
。基本上是:
where('email','=','blah123')->orWhere('username','=','blah123')
我希望在自己的数组中返回关系,如:
{
firstname: blah,
email: blah@blah.com,
user: [
username: blah123
]
}
当我使用join()
时,它会返回一个不理想的平面数组:
{
firstname: blah,
email: blah@blah.com,
username: blah123
}
我该怎么做呢?
答案 0 :(得分:0)
如果我理解你的问题,你正在寻找这种解决方案: -
User::with('user')->where('email','=','blah123')->orWhere('username','=','blah123')->first();
您可以使用 with()关键字来获取关系数据。希望它有所帮助!
答案 1 :(得分:0)
试试这个:
where('email','=','blah123')->orWhereHas('user', function($query) {
$query->where('username','=','blah123');
})->with('user')