При перенаправлении в представление, переместите его в определенную часть страницы, используя #id - Laravel 5.3

У меня есть маршрут, который перенаправляет на контроллер, который показывает представление для отображения. Но как я могу перейти к определенной части страницы. Позволь мне объяснить:

Я использую библиотеку fullpage.js для создания точек останова страницы. например: /home#firstPage, /home#secondPage и так далее. Когда я перенаправлен в /home, я хотел бы перейти в определенный раздел страницы. Все, что мне нужно, это ввести #3rdPage в URL.

Где и как мне это поставить, чтобы увидеть это действие?

мои маршруты

Route::get('/home_done', ['as' => 'home_done','uses' => 'HomeController@home']);

мой контроллер

public function home()
{
    return view('home_done');
}

Я хотел бы сделать что-то вроде:

    return view('home_done#3rdPage');

2 ответа

Решение

Вы должны настроить новую функцию и маршрут для перенаправления пользователей на правильную страницу после выполнения вашей логики:

public function home()
{
    return view('home_done');
}

public function step_3()
{
    // do something and redirect
    return redirect('home_done#3rdPage');
}

С помощью view не работает, так как вы загружаете файл, а не страницу.

Вам нужно изменить свое поведение в JS, когда пользователь заходит на вашу страницу без # считать равным #firstpage,

и в вашем HTML управлять всеми страницами, правильно генерируя URL с #what_you_need,

в вашем примере лезвия:

<a href="<?php echo route("home_done") . "#firstpage"; ?>">firstpage</a> 
//OR 
<a href="<?php echo route("home_done") ?>">firstpage</a> //because this is the same for your JS
<a href="<?php echo route("home_done") . "#secondpage"; ?>">secondpage</a>

или синтаксис лезвия

<a href="{{ route("home_done") . "#firstpage"; }}">firstpage</a> 
//OR 
<a href="{{ route("home_done") }}">firstpage</a> //because this is the same for your JS
<a href="{{ route("home_done") . "#secondpage"; }}">secondpage</a>
Другие вопросы по тегам