как заставить пользователя всегда возвращаться к той части, где он остановился - PullRequest
0 голосов
/ 08 июня 2019

Я делаю сайт, основанный на обучающих курсах с laravel, и мне бы хотелось, чтобы каждый раз, когда пользователь возвращался на курс, который он направляет на страницу, на которой он остановился.Идея, как мне поступить?

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Вы можете сохранить last visited url в базе данных. Затем, когда пользователь войдет в систему, просто извлеките этот URL и перенаправьте пользователя на эту страницу.

Код для демонстрации:

Создайте миграцию, чтобы добавить last_visited_page в таблицу существующих пользователей:

php artisan make: миграция add_last_visited_page_to_users

//Add last visited page to users table:
Schema::table('users', function(Blueprint $table){
    $table->string('last_visited_url')->nullable();
});

Чтобы сохранить последний URL в базе данных, вы можете добавить подпрограмму обновления к вашей функции контроллеров, например:

public function show($id)
{
    //The show function code
    //Before the return, add:
    $user = Auth::user();
    $user->last_visited_url = Route::getCurrentRoute()->getPath();
    $user->save();
}

Теперь вам нужно изменить функцию по умолчанию authenticated. Внутри LoginController, по умолчанию в каталоге app\Http\Controllers\Auth:

public function authenticated()
{
    $userLastVisitedUrl = Auth::user()->last_visited_url;
    if (!is_null($userLastVisitedUrl))
        return redirect($userLastVisitedUrl);
    return redirect($this->redirectTo);
}

Теперь, когда пользователь вошел в вашу систему, он будет перенаправлен на последнюю посещенную страницу;

Надеюсь, это поможет.

0 голосов
/ 08 июня 2019

Мы можем использовать Laravel URL::previous()

<a class="btn btn-info" href="{{ URL::previous() }}">back</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...