Как сделать пользовательскую целевую страницу в Laravel и как применить маршрутизацию? - PullRequest
0 голосов
/ 19 октября 2019

"/" (индексная страница как целевая страница) и "pages / home" (домашняя страница) должны отличаться тем, что целевая страница не должна иметь навигации и нижнего колонтитула.

Я пробовал перенаправлениеметод, при котором оба URL показывали одну и ту же страницу. Я также использовал стандартный метод маршрутизации, который работает частично. Единственная проблема заключается в том, что я не хочу, чтобы заголовок и нижний колонтитул домашней страницы были на целевой странице. Возможно, один из способов добиться этого - использовать два разных файла макета блейда. Как app.blade.php и landing.blade.php. Но проблема снова может заключаться в маршрутизации между целевой страницей и домашней страницей, поскольку оба они из двух разных файлов макета.

WEB / PHP

Route::redirect('/', '/home', 301);

Route::get('/home', 'PagesController@index');

КОНТРОЛЛЕРЫ / PagesController

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class PagesController extends Controller
{

public function index(){
    return view('pages.index');
}

public function home(){
  return view('pages.home');
}

}

app.blade.php

<body>
<div class="container"> 
    @include('inc.navbar')
    @yield('content')
    @include('inc.footer')
</div>
</body>

Я ожидаю другую страницу дляПосадка, но верхний и нижний колонтитулы также отображаются на целевой странице.

1 Ответ

2 голосов
/ 19 октября 2019

Вы можете полностью избавиться от контроллера для этого

Route::view('/', 'pages.index');

Route::view('/home', 'pages.home');

Теперь, если вы зайдете на сайт example.com, вы увидите целевую страницу

И example.com/homeпоказывает домашнюю страницу

Другое решение - исключить верхний и нижний колонтитулы из макета приложения, если путь запроса равен '/', то есть целевая страница

<body>
    <div class="container">
        @includeWhen(request()->path() != '/', 'inc.navbar')
        @yield('content')
        @includeWhen(request()->path() != '/', 'inc.footer')
    </div>
</body>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...