获取给定字段的数组/数据列表并在 Eloquent 查询中使用它 - Laravel
Get Array / List of data for a given field and Use it in Eloquent Query - Laravel
我正在尝试从特定 table 和特定列中获取结果列表。
有效
$curr_user_offering = Offering::where('user_id', Auth::user()->id)->first()->language;
Returns
西班牙语
失败
$curr_user_offering = Offering::where('user_id', Auth::user()->id)->get()->language;
错误
我试过了
$result = $curr_user_offering->toArray();
return $result;
Exception in Collection.php line 1479:
Property [language] does not exist on this collection instance.
但语言确实存在。
我要return
['English','Spanish','French']
最后,我想用它来循环查询,检查其他用户的个人资料是否完全相反。也就是说,如果 user_1 提供:英语,而 user_2 想要:英语。我应该 return 该用户配置文件的真实结果。
下面的查询工作正常:它检查用户是否不是登录的用户,这意味着其他用户想要学习当前登录用户提供的 X 语言。
$match = Wanting::where([['id', '<>', Auth::user()->id],['language',$curr_user_offering]])->get();
但我需要一种方法来遍历登录用户想要的语言并遍历每个用户并找到哪些可以提供。
以下代码不起作用,因为 get() returns 模型集合,而不是单个模型:
Offering::where('user_id', Auth::user()->id)->get()->language;
如果您想从单个列中获取值列表,下面的方法应该可以解决问题:
$languages = Offering::where('user_id', Auth::user()->id)->get()->pluck('language')->toArray();
至于问题的第二部分,我不确定我是否遵循。让需要特定语言的用户(Wanting 模型)对你有用,为什么你不能为 Offering 模型做同样的事情?
我正在尝试从特定 table 和特定列中获取结果列表。
有效
$curr_user_offering = Offering::where('user_id', Auth::user()->id)->first()->language;
Returns
西班牙语
失败
$curr_user_offering = Offering::where('user_id', Auth::user()->id)->get()->language;
错误
我试过了
$result = $curr_user_offering->toArray();
return $result;
Exception in Collection.php line 1479:
Property [language] does not exist on this collection instance.
但语言确实存在。
我要return
['English','Spanish','French']
最后,我想用它来循环查询,检查其他用户的个人资料是否完全相反。也就是说,如果 user_1 提供:英语,而 user_2 想要:英语。我应该 return 该用户配置文件的真实结果。
下面的查询工作正常:它检查用户是否不是登录的用户,这意味着其他用户想要学习当前登录用户提供的 X 语言。
$match = Wanting::where([['id', '<>', Auth::user()->id],['language',$curr_user_offering]])->get();
但我需要一种方法来遍历登录用户想要的语言并遍历每个用户并找到哪些可以提供。
以下代码不起作用,因为 get() returns 模型集合,而不是单个模型:
Offering::where('user_id', Auth::user()->id)->get()->language;
如果您想从单个列中获取值列表,下面的方法应该可以解决问题:
$languages = Offering::where('user_id', Auth::user()->id)->get()->pluck('language')->toArray();
至于问题的第二部分,我不确定我是否遵循。让需要特定语言的用户(Wanting 模型)对你有用,为什么你不能为 Offering 模型做同样的事情?