Я работаю над проектом laravel / eloquent в социальных сетях.
Для начала я вставлю соответствующий код, так как он понадобится в качестве контекста для того, что я описываю .
$friends = Relationships::where([['rel_A', Auth::user()->name], ['type', 'friend']])
->orWhere([['rel_B', Auth::user()->name], ['type', 'friend']])
->get();
if (count($friends) > 0) {
$friendData = collect();
foreach ($friends as $friendu) {
if ($friendu->rel_A == Auth::user()->name) {
$friendName = $friendu->rel_B;
} else {
$friendName = $friendu->rel_A;
}
$friendReturn = User::where('name', $friendName)->first();
$friendData->push($friendReturn);
}
} else {
$friendData = collect();
}
У меня есть страница, которая отображает запросы на добавление в друзья, взятые из определенной таблицы запросов на добавление c, и у меня есть еще одна таблица для пользователей. Как видно из приведенного выше кода, я получаю две коллекции: $friends
и $friendData
.
Проблема в том, что я не могу просто объединить две коллекции, так как тогда foreach l oop на странице принимает информацию $friendData
как запрос и выдает ошибку при попытке получить столбцы из это не существует в моей таблице пользователей. Я не могу сделать всеобъемлющую коллекцию обоих массивов, потому что, хотя она решает вышеуказанную проблему, она не помогает мне отображать информацию из таблицы пользователей, так как я буду делать foreach l oop через коллекцию $friends
.
У меня есть пара мест, где я хотел бы делать подобные вещи, и хотя я мог бы просто добавить еще один столбец к своему SQL и просто сделать это таким образом, выполнение этого кажется несколько неэффективным. и не нужно, когда кажется, что есть способ связать контент коллекции $friends
с контентом $friendData
через их общее имя.