2015-03-06 5 views
4

Итак, я изучаю некоторые основные материалы Laravel, поскольку я новичок в PHP. Я следую базовому учебному пособию, в котором я печатаю материал в файл с именем home.blade.php.simple Laravel View :: make() не работает

Способ, которым я звоню сейчас, заключается в следующем.

Вот мой routes.php

Route::get('/', array(
    'as' => 'home', 
    'uses' => '[email protected]' 
)); 

Вот мой HomeController.php

class HomeController extends Controller { 

    public function home() { 
     return View::make('home'); 
    } 

} 

Вот home.blade.php

{{'Hello.'}} 

Прежде чем спросить, да мой home.blade.php находится внутри папка «Мои представления».

Отпечаток ошибка из выглядит следующим образом

FatalErrorException in HomeController.php line 6: 
Class 'App\Http\Controllers\View' not found 
in HomeController.php line 6 
at HandleExceptions->fatalExceptionFromError(array('type' => '1', 'message' => 'Class 'App\Http\Controllers\View' not found', 'file' => '/Users/ryandushane/Google Drive/Web_WorkSpace/theNeonSurf/app/Http/Controllers/HomeController.php', 'line' => '6')) in compiled.php line 1738 
at HandleExceptions->handleShutdown() 

Вот нечетная часть. Если бы я изменить мой routes.php, чтобы просто содержать

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

он функционирует нормально.

Есть ли у кого-нибудь идеи, что я могу сделать?

+0

В какой версии Laravel вы используете? – mininoz

+0

@mininoz Laravel 5 –

ответ

10

Новый синтаксис для Laravel 5

public function home() { 
    return view('home'); 
} 

Для получения дополнительной информации вы можете прочитать здесь http://laravel.com/docs/5.0/views

+0

Ahhh. Имеет смысл. Многие из их документации по-прежнему показывают «View :: make()», поэтому я был смущен. –

1

Держу пари, ваш класс контроллера имеет пространство имен, да? Попробуйте \View::make('home'); Или вы можете импортировать его в верхней части файла:

<?php 

namespace App\Http\Controllers; 

use View; 

class HomeController extends Controller { 

    public function home() { 
     return View::make('home'); 
    } 

} 
+0

вы можете мне сказать, почему это работает? Вы правы. спасибо за помощь! это новое в Laravel 5? (руководство, за которым я следую, из Laravel 4) –

+0

Это не ново для laravel 5. Когда вы находитесь внутри пространства имен в php, все классы за пределами пространства имен должны иметь префикс «\» или должны быть импортированы с помощью 'use'. Без «\» вы на самом деле говорили class 'App \ View', который, очевидно, не существует. – kylehyde215

+0

Выполнение 'return \ View :: make ('home');' работает. Однако 'use View 'не работает. –

2

Try это в вашей верхней части класса (контроллер)

use View; 
Смежные вопросы