在 laravel 5 中使用 blade 模板时遇到问题

Trouble with blade templating in laravel 5

我试图理解 laravel 的基本 blade 模板引擎,但我似乎无法通过一个基本示例。我的 blade 模板没有加载。它只显示白屏,但是当我将 hello.blade.php 删除到 hello.php 时它起作用了。有什么建议吗?

Routes.php

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

PagesController.php

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function home()
    {

        return Views('hello');
    }
}

hello.blade.php

<html>
    <head>
        <title>Hello World</title>

    </head>
    <body>
        <div class="container">
            <div class="content">
                <div class="title">Starting to learn Laravel 5</div>

            </div>
        </div>
    </body>
</html>

没有 Views 助手。它被称为 view:

return view('hello');

嗯,我也有同样的 "white screen problem"。 laravel 中的 blade 文档非常混乱。然后,试试这个:

  1. 创建布局,假设 template.blade.php:

    <html>
    <head>
        <title>Hello World</title>
    
    </head>
    <body>
        <div class="container">
            <div class="content">
                <div class="title">Starting to learn Laravel 5</div>
                @yield('view_content') 
            </div>
        </div>
    </body>
    

  2. 创建一个要包装到模板中的简单视图,比方说 hello.blade.php:

    @extends('template')
    @section('view_content')
         This is my view content
    @stop
    

现在,在您的控制器中只需调用视图而不是布局:

public function home(){

    return view('hello');
}

无论扩展名如何,我都不确定它是如何工作的,因为在您的控制器中语法不正确。您 return 视图不是视图... return view('hello')。从技术上讲,您应该看到如下内容:

FatalErrorException in PagesController.php line 18: Call to undefined function App\Http\Controllers\Views()

即使 app_debug 为假,您也应该看到 Whoops, looks like something went wrong.

当我打错字时得到了这个:

return views('abc');

而不是

return view('abc');

额外的 s 正在扼杀一切。