Решение: я использовал db фасад, DB::select()
для запуска необработанного SQL-запроса.
У меня есть две таблицы: пользователи (идентификатор, имя пользователя, город, страна) и друзья (идентификатор, идентификатор_пользователя, идентификатор_пользователя, статус). В таблице «users» хранится информация о пользователе, а в таблице «friends» хранится идентификатор пользователя, вошедшего в систему в данный момент, а friend_id - это идентификатор пользователя, который отправил запрос на добавление в друзья текущему пользователю, и статус будет «получен». Я хочу показать информацию о пользователях, отправивших запросы текущему пользователю. Правильный ли синтаксис запроса к моей базе данных? Я могу видеть правильный вывод, если я не использую вложенный подзапрос. Заранее спасибо!
Мой запрос к БД:
$friendrequests = DB::table('users')->select(['username','city','country'])->where('id',DB::table('friends')->select('friend_id')->where([['status','received'],['user_id',$user->id]]));
Мой HTML:
@extends('layouts.master')
@section('title')
Friend Requests
@endsection
@section('content')
@include('includes.message-block')
<section class="row requests">
<div class="col-md-6 col-md-offset-3">
<header><h3>Friend Requests</h3></header>
<div class="requestlist">
<header><h2>You have request from:</h2></header>
@foreach($users as $user)
<p>Name: {{ $user->username }}<br />City: {{ $user->city }}<br />Country:{{ $user->country }}</p>
<div class="interaction">
//stuff here
</div>
@endforeach
<a href="{{ URL::previous() }}">Back</a>
</div>
</div>
</section>
@endsection
Маршрут:
Route::get('/friendrequests',[
'uses' => 'FriendController@getFriendRequests',
'as' => 'friendrequests',
'middleware' => 'auth'
]);
Контроллер (работает, если я не использую вложенный подзапрос):
public function getFriendRequests()
{
$user = Auth::user();
$friendrequests = DB::table('users')
->select(['username','city','country'])
->where('id',
DB::table('friends')->select('friend_id')->where([['status','received'],['user_id',$user->id]])->get())->get();
return view('friendrequests',['users' => $friendrequests]);
}