@emoney3223

Как реализовать индивидуальную страницу для каждого пользователя в Laravel?

Подскажите пожалуйста, как реализовать на простом примере задачника, что бы после регистрации и авторизации, для каждого авторизованного пользователя были индивидуально свои задачи. У Ивана(свои записи) У Василия(свои записи). Буду очень благодарен. CRUD реализовал, но хотелось бы внести коррективы в проект)
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 2
@aleksejjjj
Рановато вам еще Ларавел. PHP бы получше узнать, да логику подтянуть. Страница то у всех одинаковая но на выборке из БД учитывайте id пользователя. Если использовать модели и связи то будет что-то вроде:
$userTasks = Auth::user()->tasks;
Ответ написан
@jazzus
Если в отношения пока не вникнуть, то есть максимально простой способ:
1)В таблице tasks создать столбик user_id. Его желательно связать с users, но на начальных этапах лучше не забивать голову такими мелочами)) Все равно потом 10 раз потом все переделывать, сносить таблицы, все переименовывать, переписывать и т.д.
2) Когда создаете task записываете в user_id =Auth::id();.
$task=new Task;
$task->user_id = Auth::id();
$task->save();


Зачем это? Чтобы получить id авторизованного в данный момент пользователя и тем самым прописать, что типа задача принадлежит ему.
При этом нужно не забыть подключить фасад auth( use Auth в шапке контроллера над названием класса);
3) Все задача привязана. Теперь нужно получить их.
$tasks=Task::where('user_id',Auth::id())
                                      ->get();

теперь в переменной $tasks будут задачи авторизованного в данный момент пользователя.
4) Вам наверняка захочется их отсортировать, подсчитать количество и сделать пагинацию.
Поэтому можно будет прописать
$tasks=Task::where('user_id',Auth::id());
$count = $tasks->count();
$tasks=$tasks->orderBy('updated_at', 'desc')
                      ->paginate(20);

Это задачи пользователя с сортировкой по дате изменения, количеством и по 20 записей на страницу.
Ларавель пагинацию сделает автоматом. Вам нужно будет только разместить в шаблоне.
{{ $tasks->links() }}
Все можно запускать в продакшен
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы