路由未加载任何视图

时间:2014-05-04 10:49:17

标签: php laravel-4

所以我是laravel的新手,我试图创建一个非常简单的路线,但似乎无法返回视图。

你可以在下面看到我的路线

Route::get('overview', function()
{
      return View::make('overview');
});

当用户导航到网址时:http://www.myapp.com/overview我希望该应用返回overview.php页面。该应用程序现在只会抛出500错误。

我的其他路线完美无缺,所以我对确切的错误感到困惑。你可以在下面看到它。

Route::get('/', function()
{
     return View::make('index');
});

如果我将概览路线更改为视图索引,则会给出相同的500错误。 index.php和overview.php都存在于views文件夹中。

感谢您的帮助。

编辑:显示无法加载的测试页面。名为test.php的页面可以在app / views中找到如果我将概览路由更改为View::make('test'),它也会失败。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Laravel PHP Framework</title>
    <style>
    @import url(//fonts.googleapis.com/css?family=Lato:700);

    body {
        margin:0;
        font-family:'Lato', sans-serif;
        text-align:center;
        color: #999;
    }

    .welcome {
        width: 300px;
        height: 200px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -150px;
        margin-top: -100px;
    }

    a, a:visited {
        text-decoration:none;
    }

    h1 {
        font-size: 32px;
        margin: 16px 0 0 0;
    }
     </style>
    </head>
    <body>
        <div class="welcome">
        <a href="http://laravel.com" title="Laravel PHP Framework"></a>
        <h1>You have arrived.</h1>
        </div>
   </body>
   </html>

编辑2:添加了我的htaccess文件

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On
RewriteBase /falke/

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

首先,您正在使用blade样式视图加载,但您没有使用任何刀片布局,也没有使用扩展名中blade的任何刀片视图。所以,首先你需要为你的模板使用一个布局,它可能在view/layouts/master文件夹中可用,如果没有,那么创建一个如下:

// "app/views/layouts/master.blade.php"
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Laravel PHP Framework</title>
        <style>
            @import url("//fonts.googleapis.com/css?family=Lato:700");
        </style>
    </head>
    <body>
        @yield('content')
    </body>
</html>

然后像这样创建overview.blade.php视图:

@extends('layouts.master')

@section('content')
    <h2>Welcome</h2>
@stop

所以你可以在你的函数中使用这样的东西:

return View::make('overview');

否则(如果不是bladeoverview.php)您必须在函数中使用以下内容而不是return View(...)

$this->layout->content = View::make('overview');

此外,您需要在BaseController

中使用此功能
protected $layout = 'layouts.master'; // default

详细了解Laravel website