[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как реализовать матричную пирамиду? Фреймворк Lara
likowoxac@p33.org
Доброго времени суток, пытаюсь реализовать простую Матричную пирамиду. Логика алгоритма следующая, у каждого пользователя может быть только 3 подписчика, в случае если появляется 4-ый подписчик, он становится подписчиком подписчика под номером 1. Условная таблица вот такая: user posted image То есть схема заполнения пирамиды должна быть сверху вниз - слева направо, предположим если зарегистрируются новые подписчики с id 13, 14, 15 они встанут вот сюда user posted image Пытался сделать через циклы foreach, но непонятно как реализовать глубинное множество, их будет неограниченное кол-во
walerus
Цитата
Фреймворк Lara

Не работал с данным фреймворком, но логика простая я так понимаю, как бы сделал я с использованием базы...

Варианты:
1) Проверять каждого подписчика на "свободные места" и потом, если у данного подписчика уже все занято - отдавать следующему
2) Просто хранить отдельной записью, ID подписчика со свободным местом.
likowoxac@p33.org
Цитата (walerus @ 20.12.2017 - 23:30)
Цитата
Фреймворк Lara

Не работал с данным фреймворком, но логика простая я так понимаю, как бы сделал я с использованием базы...

Варианты:
1) Проверять каждого подписчика на "свободные места" и потом, если у данного подписчика уже все занято - отдавать следующему
2) Просто хранить отдельной записью, ID подписчика со свободным местом.

Здравствуйте, помогите пожалуйста с решением моей проблемы, совсем уже измучался - сообразил вот такого франкенштейна, работает но только до 3-го уровня вложенности, дальше уже не работает логика.

public function matrix($id, $follower)
{
if($follower->users and $follower->users->count() == 2):
foreach($follower->users as $follower):
if($follower->users and $follower->users->count() == 2):
continue;
else:
$mtx = new UserFollower([
'user_id' => $follower->user->id,
'follower_id' => $id
]);
$mtx->save();
break;
endif;
$this->matrix($id, $follower);
endforeach;
else:
$mtx = new UserFollower([
'user_id' => Auth::user()->id,
'follower_id' => $id
]);
$mtx->save();
endif;
}
public function index()
{
return view('form');
}
public function store(Request $request)
{
$followers = UserFollower::where('user_id', Auth::user()->id)
->
get();
$user = new User([
'name' => $request->name
]);
$user->save();
if($followers and $followers->count() == 2):
foreach($followers as $follower):
if($follower->users and $follower->users->count() == 2):
continue;
else:
$mtx = new UserFollower([
'user_id' => $follower->user->id,
'follower_id' => $user->id
]);
$mtx->save();
break;
endif;
$this->matrix($user->id, $follower);
endforeach;
else:
$mtx = new UserFollower([
'user_id' => Auth::user()->id,
'follower_id' => $user->id
]);
$mtx->save();
endif;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.