Основной шаблон лезвия не работает

Вот мой маршрут

Route::get('test', array('uses'=>'TestController@showTest'));

Вот мой контроллер:

class TestCOntroller extends \BaseController {

/**
* Display a listing of the resource.
*
* @return Response
*/
public function showTest()
{
return View::make('test.Test');
}}

Вот мой взгляд / test / Test.blade.php

          @section('content')
<h1>HTML Ipsum Presents</h1>
@stop

когда я пытался получить доступ к URL, он ничего не показывает. Что я должен делать?

2

Решение

В соответствии с вашими Route как указано ниже:

Route::get('test', array('uses'=>'TestController@showTest'));

Ваш Controller должно быть:

class TestController extends \BaseController {

public function showTest()
{
return View::make('test.test');
}
}

Так что в этом случае Blade View должно быть что-то вроде этого:

// app/views/test/test.blade.php
@extends('layouts.master')

@section('content')
<h1>HTML Ipsum Presents</h1>
@stop

Убедитесь, что у вас есть layouts папка в views папка и содержит master.blade.php файл в качестве основного Layout и это должно быть что-то вроде этого:

<!-- app/views/layouts/master.blade.php -->
<html>
<head>
<title>Test Site</title>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>

Таким образом, всякий раз, когда вы создаете представление, расширяя master.blade.php, html/text содержащиеся в @section('content') а также @stop в вашем child-view будет сброшен на место @yield в вашем master.blade.php файла, поэтому всегда расширяйте основной шаблон, чтобы создать child-view с помощью @extend('layouts.master'), Читать дальше на Laravel сайт о шаблонирование.

2

Другие решения

@section('content') определяет блок контента, который вы никогда не отображаете, вы в основном устанавливаете переменную и никогда не выводите ее на экран.

Сделайте еще один шаблон с названием layout или что-то в этом роде.

<!DOCTYPE html>
<html>
<head>
<title>hooray!</title>
</head>
<body>
@yield('content')
</body>
</html>

и положи @extends('layout') в верхней части вашего текущего шаблона.

Ваш контент должен появиться.

3

Вы не расширяете ни один другой шаблон блэйда, поэтому здесь нет раздела content определены.

Вы делаете свой test/Test просмотрите представление верхнего уровня, где вам нужно определить всю структуру вашего HTML.

Попробуйте создать новый вид, что-то вроде app/view/layouts/master.blade.phpи добавьте этот контент в:

<!DOCTYPE html>
<html>
<head></head>
<body>

@yield('content', '')

</body>
</html>

Измените ваш тестовый вид, чтобы включить его в верхней части:

@extends('layouts.master')
3