代码之家  ›  专栏  ›  技术社区  ›  LucyTurtle

未加载LAVEL视图

  •  4
  • LucyTurtle  · 技术社区  · 6 年前

    视图位置:/resources/views/搜索.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');
    

    我的/存储/日志中没有错误/拉威尔.log
    my/var/log/apache2中没有错误/错误.log

    我已经多次尝试清除我的laravel视图缓存和cloudflare缓存(加上它处于开发模式)。

    除非我从控制器回显,否则页面上不会出现任何东西。

    似乎视野中的一切都被完全忽略了。我甚至可以把php代码,应该错误了,我得到的是一个空白屏幕。

    1 回复  |  直到 6 年前
        1
  •  2
  •   amflare    6 年前

    你没有将你的视图完全返回到应用程序。当你的 show() 函数首先被调用(可能是通过我们看不到的路径),您正在调用 self::showPage() showPage() 显示() 继续向上传递视图,它会丢失,您会看到一个空白页。

    要纠正这个问题,只需添加一个return将数据传递给应用程序。

    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 );
    }