【问题标题】:Laravel View not LoadingLaravel 视图未加载
【发布时间】:2019-02-19 12:13:46
【问题描述】:

我正在使用 Laravel,当我尝试在控制器中返回视图时,页面上没有显示任何内容。

查看位置:/resources/views/search.blade.php

search.blade.php 的内容:

@extends( 'layouts.top10' )

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

布局中的代码无关紧要,因为它适用于许多其他页面。

控制器中的代码(如果我从控制器中回显 $content,它会显示在页面上,但不会显示视图或布局中的任何内容):

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

我的 /storage/logs/laravel.log 中没有错误
我的 /var/log/apache2/error.log 中没有错误

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

除非我从控制器中回显,否则页面上没有任何内容。

似乎视图中的所有内容都被完全忽略了。我什至可以把应该出错的 php 代码输出,我得到的只是一个空白屏幕。

Laravel 框架 5.5.43

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您不会一直将视图返回到应用程序。当您的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 );
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-14
      • 2019-07-13
      • 2016-10-02
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2015-12-25
      • 2012-08-23
      • 2020-12-06
      相关资源
      最近更新 更多