2015-02-15 2 views
2

Я пытаюсь понять базовый механизм шаблонов лезвиев, но я не могу пройти мимо базового примера. Мой шаблон лезвия не загружается. Он показывает только белый экран, но когда я удаляю hello.blade.php на hello.php, он работает. Любое предложение?Проблема с лезвием templating в laravel 5

routes.php

Route::get('/', '[email protected]'); 

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> 
+0

Какое сообщение об ошибке в laravel.log? (storage/logs/laravel-2015-02-15.log) – baao

ответ

1

Там нет Views помощник. Это называется view:

return view('hello'); 
+0

Странно, что в соответствии с OP он работал с 'hello.php', хотя ... – lukasgeiter

+0

У меня такой же результат. Изменение видов для просмотра не решает проблему – sixFingersMan

+0

@sixFingersMan Затем проверьте журналы своего сервера. Вы используете 'php artisan serve', Homestead или что-то другое? – ceejayoz

0

Ну, у меня был такой же «белый экран» проблемы. И лезвие docs в laravel настолько смущено. Затем, попробуйте следующее:

  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'); 
} 
+0

Не повезло. Это не решает проблему. Но я получил решение. При выполнении команды php artisan в командной строке он дает одну ссылку, такую ​​как http: // localhost: 8000. Когда я открою эту ссылку, это решит результат. Но я не понимал, в чем разница между этими делами. – sixFingersMan

0

я не уверен, как это работает независимо от расширения, как в контроллере синтаксис неверен. Вы возвращаете представление не Views ... 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.

+0

Спасибо за помощь. Эта идея не работает, но я получил решение. с помощью команды php artisan – sixFingersMan

0

Я получил это, когда я сделал опечатку, как так:

return views('abc'); 

вместо от

return view('abc'); 

Это Дополнительно s убивал все.

Смежные вопросы