При перенаправлении в представление, переместите его в определенную часть страницы, используя #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>