Laravel View не загружается - PullRequest
       1

Laravel View не загружается

0 голосов
/ 14 сентября 2018

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

Расположение: /resources/views/search.blade.php

Содержимое search.blade.php:

@extends( 'layouts.top10' )

@section( 'content' )
    {{ $content }}
@endsection 

Код в макете НЕ имеет значения, поскольку он работает для многих других страниц.

Код в контроллере (если я отображаю содержимое $из контроллера это отображается на странице, но ничего из вида или макета не отображается):

public function show( $keyword ) {
    $keyword = urldecode( $keyword );
    $keyword_no_slash = str_replace( '-', ' ', $keyword );

    $page = Page::where( 'title', 'like', $keyword_no_slash )->first();
    Self::showPage( $page );
}
public function showPage( $page ) {
    $content = "Test content";
    // If I echo $content here, it is shown on the page
    return view( 'search', compact( 'content' ) );
}

Маршрут:

Route::get( '/{keyword}', 'SearchController@showPage');

В моем / хранилище нет ошибокlogs / laravel.log
В моем /var/log/apache2/error.log

нет ошибок. Я уже пытался очистить кэш Laravel View и кэш Cloudflare (плюс он находится в режиме Dev) - много раз.

И на странице ничего не появляется, если я не повторяю это с контроллера.

Кажется, что все в представлении полностью игнорируется.Я даже могу поставить php-код, который должен выдавать ошибку, все, что я получаю, это пустой экран.

Laravel Framework 5.5.43

1 Ответ

0 голосов
/ 14 сентября 2018

Вы не возвращаете свое представление полностью в приложение. Когда ваша функция show() вызывается первой (предположительно по маршруту, который мы не видим), вы вызываете self::showPage(), но фактически ничего не делаете с данными, которые она возвращает (в данном случае, представлением). Таким образом, приложение выполняет свою функцию, не получает данные и продолжает весь свой веселый путь. Поскольку вы запускаете обе функции, вы все еще можете выполнять дамп из showPage(), но без show(), продолжая передавать представление вверх по строке, оно теряется, и вы видите пустую страницу.

Чтобы исправить проблему, просто добавьте возврат, чтобы передать данные в приложение.

public function show( $keyword ) {
    $keyword = urldecode( $keyword );
    $keyword_no_slash = str_replace( '-', ' ', $keyword );

    $page = Page::where( 'title', 'like', $keyword_no_slash )->first();
    return Self::showPage( $page );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...