Цитата |
Фреймворк Lara |
Цитата (walerus @ 20.12.2017 - 23:30) | ||
Не работал с данным фреймворком, но логика простая я так понимаю, как бы сделал я с использованием базы... Варианты: 1) Проверять каждого подписчика на "свободные места" и потом, если у данного подписчика уже все занято - отдавать следующему 2) Просто хранить отдельной записью, ID подписчика со свободным местом. |
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;
}