У меня есть пользователь, который говорит на родном языке позволяет говорить английский и хочет выучить французский.Поиск спичку профиля пользователя в Laravel 5.3
Как я могу найти список матча, где пользователи натива французского и хочет выучить английский. Его программа обмена языками, поэтому я хотел бы указать пользователей с совпадением.
У меня есть пользователь, Language_User и Language table. в таблице Language_User У меня есть дополнительное поле типа type (learn или native).
Пользователиидентификатор
имя
...
Language_User
ID
user_id
LANGUAGE_ID
типа ('учиться', 'родной')
Язык
ID
язык
запросов
Во-первых, я получаю все пользователи, которые не играть роль «админ» или не он сам.
$other_users = User::with('languages')->with('departments')->with('hobbies')->with('universities')->with('years')->where([['id', '<>', Auth::user()->id],['role', '<>', 2]])->get();
Тогда я получаю LoggedIn пользователей $ выучить язык и $ родной язык для сравнения с другими пользователями
$learn = Auth::user()->languages()->wherePivot('type', 'learn')->select('language_id')->first();
$native = Auth::user()->languages()->wherePivot('type', 'native')->select('language_id')->first();
В видовом
дает LoggedIn язык пользователя, чтобы узнать
{{$learn->language_id}}
дает loggedin собственный родной язык
{{$native->language_id}}
View Code
@foreach($other_users as $user)
@foreach($user->languages as $lang)
@if($lang['pivot']['type'] ==='native' AND $lang['pivot']['language_id'] ===$learn['language_id'])
<tr>
<td>{{$user->firstname}} </td>
<td>{{$user->lastname}} </td>
<td>{{$user->email}} </td>
<td>{{$user->photo}} </td>
<td>{{$user->bio}} </td>
<td>{{$user['universities']->university}} </td>
<td>{{$user['departments']->department}} </td>
<td>{{$user['years']->year}} </td>
<td>
@foreach($user->languages as $lang)
@if($lang['pivot']['type'] === 'native')
{{$lang["language"]}}
@endif
@endforeach
</td>
<td>
@foreach($user->languages as $lang)
@if($lang['pivot']['type'] === 'learn')
{{$lang["language"]}}
@endif
@endforeach
</td>
<td>
@foreach($user->hobbies as $hobby)
{{$hobby->hobby}} <br>
@endforeach
</td>
</tr>
@endif
@endforeach
@endforeach
Я не могу поставить два если условия один для проверки родного языка и один для проверки выучить язык. если мне это нравится:
@if($lang['pivot']['type'] ==='native' AND $lang['pivot']['language_id'] ===$learn['language_id'])
@if($lang['pivot']['type'] ==='learn' AND $lang['pivot']['language_id'] ===$native['language_id'])
У меня нет строк, в то время как пользователь существует с совпадением.
Я думаю, потому что у меня есть два типа поворота, которые учатся и являются родными в массиве.как сравнивать и учиться, и родной? ниже отображаемых языков. его многие ко многим отношению
"languages":[
{
"id":3,
"language":"Spanish",
"pivot":{
"user_id":2,
"language_id":3,
"type":"native"
}
},
{
"id":4,
"language":"Greek",
"pivot":{
"user_id":2,
"language_id":4,
"type":"learn"
}
}
]
Чтобы просто проверить, просто вы хотите показать список других пользователей, которые хотят изучить родной язык 'Auth :: user()' ** и ** их родной язык является тем, что 'Auth: : user() 'хотите узнать? –
@ RossWilson Да. правильно –
Кроме того, могу ли я предположить, что пользователь может захотеть узнать больше одного языка? –