嗨,我是Laravel新手 我需要你的帮助。这是我的数据库:
user: id, name, surname, email, role
user_informations: id, user_id, status
我想要启用状态的所有用户的名字。
我是做什么的
User.php
public function information()
{
return $this->hasOne('App\UserInformation');
}
UserInformation.php
public function guider()
{
return $this->belongsTo('App\User');
}
这是我的查询
$users =User::where('role', '2')->information()->get();
调用未定义的方法Illuminate \ Database \ Eloquent \ Builder :: information()
我知道我的查询是错误的,因为我还没有定义我想要获取状态为“启用”的所有用户的任何地方
答案 0 :(得分:1)
您应该使用whereHas()
此方法的第一个参数是您的关系,第二个是您的回调函数
$users =User::where('role', '2')->whereHas('information',function($query){
return $query->where('status','enable')
})->get();
答案 1 :(得分:0)
您需要使用
Console.WriteLine();
Random random = new Random();
int[,] arr = new int[10, 10];
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
arr[i, j] = Convert.ToInt32(random.Next(0, 10));
Console.Write(arr[i, j] + "\t");
}
Console.WriteLine(" \n");
或
$users = User::where('role', '2')->with('information')->get();
答案 2 :(得分:0)
要获取所有具有“启用”状态和“ 2”角色的用户:
$users = User::where('role', '2')->with(['information' => function($query) {
$query->where('status', 'enable');
}])->get();
您可以使用Eager Loading
关键字找到有关Laravel文档的更多详细信息。
您还可以阅读this topic来了解其工作原理。