[英]Get Array / List of data for a given field and Use it in Eloquent Query - Laravel
我正在嘗試從特定表和特定列中獲取結果列表。
作品
$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 提供:English 而 user_2 想要:English。 我應該返回該用戶配置文件的真實結果。
下面的查詢工作得很好:它檢查用戶是否不是登錄的用戶,這意味着其他想要學習當前登錄用戶提供的 X 語言的用戶。
$match = Wanting::where([['id', '<>', Auth::user()->id],['language',$curr_user_offering]])->get();
但是我需要一種方法來循環登錄用戶想要的語言並循環遍歷每個用戶並找到哪些可以提供該語言。
以下代碼不起作用,因為get()返回模型集合,而不是單個模型:
Offering::where('user_id', Auth::user()->id)->get()->language;
如果您想從單個列中獲取值列表,以下應該可以解決問題:
$languages = Offering::where('user_id', Auth::user()->id)->get()->pluck('language')->toArray();
至於問題的第二部分,我不確定我是否遵循。 獲取需要特定語言(想要模型)的用戶對您有用,為什么您不能為提供模型做同樣的事情?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.