获取给定字段的数组/数据列表并在Eloquent Query中使用它 - Laravel

时间:2017-02-14 17:07:35

标签: php laravel laravel-5 eloquent laravel-5.4

我正在尝试从特定表格和特定列中获取结果列表。

作品

$curr_user_offering = Offering::where('user_id', Auth::user()->id)->first()->language; 

返回

西班牙语

失败

$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.

但语言确实存在。

我想返回

[ '英语', '西班牙语', '法国']

最后,我想使用它来遍历查询,并检查其他用户是否具有完全相反的配置文件。也就是说,如果user_1提供:英语和user_2想要:英语。我应该返回该用户配置文件的真实结果。

下面的查询工作正常:它检查用户是否不是登录的用户,这意味着其他用户想要学习当前登录用户正在提供的X语言。

$match = Wanting::where([['id', '<>', Auth::user()->id],['language',$curr_user_offering]])->get();

但我需要一种方法来循环登录用户想要语言并循环遍历每个用户并找到可以提供的那些。

1 个答案:

答案 0 :(得分:1)

以下代码不起作用,因为 get()会返回一组模型,而不是单个模型:

GetPosiitiveHash()

如果您想从单个列中获取值列表,以下应该可以解决这个问题:

String.GetHashCode()

至于问题的第二部分,我不确定是否跟进。让想要特定语言的用户(想要模型)适合您,为什么不能为提供模型做同样的事情?