Отображение контента по виду - PullRequest
0 голосов
/ 30 апреля 2018

Я новичок в Laravel и Blade. У меня есть два разных содержимого, одно для дома и второе для любого просмотра, кроме дома.

У меня есть этот код, но ничего не происходит:

@if(view('home')) // Display content if is home, display 'foo'
    @include('partials/foo')
@else
    @include('partials/bar') // Okay, not in home, display 'bar'
@endif;

Это правильный путь?

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

Я решил использовать это Как получить текущий URL внутри оператора @if (blade) в Laravel 4?

@if(Request::is('/')) // Homepage
    'foo'
@else // All pages
    'bar'
@endif
0 голосов
/ 01 мая 2018

Как правило, вы бы использовали контроллер. Поток выглядит следующим образом:

  • в вашем файле rout.web есть маршрут, например /home
  • это указывает на открытый метод на контроллере, такой как HomeController @ index ()
  • Контроллер выполняет любые запросы и вычисления, а затем возвращает представление с необходимыми данными

В маршрутах.web:

Route::get('home', 'HomeController@index');

В классе HomeController:

public function index()
{
    $variable = ModelName::where('field', 'value')->first();

    return view('home')->with('variable', $variable);
}

Это позволяет вам не проверять вид в блейде, поскольку вы специально отправляете его туда.

Удалите переменные, если они вам не нужны.

0 голосов
/ 30 апреля 2018

Используйте класс Route в блейде, чтобы получить метод и принять решение на основе метода

@if(\Route::getCurrentRoute()->getActionMethod()  == 'index')
    @include('partials/foo')
@else
   @include('partials/bar') // Okay, not in home, display 'bar'
@endif;
...