Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.04.2014 20:01:50

Анастасия

Почему не работает @extends в Laravel 4?

Не знаю почему, но у меня абсолютно не работают шаблоны blade. Первый раз работаю с данным фреймврком и сразу столкнулась с этой проблемой. Создала маршрут:

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

Файл new.blade.php:

@extends('layout') instead of @layout('layout') 
@section('content')
  Users!
@stop

ну и сам шаблон:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>Web-studio</title>
  <link rel="stylesheet" href="design/styles/main.css" type="text/css" />

 </head>
 <body>
  <header>
   <div class="header-bg">

		<div id="header-logo">
			<a class="head" href=""><img src="design/images/logo.png" ></a>
		</div>
		<div id="header-ref">
			<a class="head" href="">Главная</a>
		</div>
		<div id="header-ref">
			<a class="head" href="">Помощь</a>
		</div>
		<div id="header-ref">
			<a class="head" href="">Форум</a>
		</div>
		<div id="header-reg">
			<a class="head" href="">Вход</a>
		</div>
		<div id="header-reg">
			<a class="head" href="{{ URL::to('registration') }}">Регистрация</a>
		</div>
   </div>
   </header>
   <div class="menu">
		<a href="{{ URL::to('employees') }}" id="menu-block"></a>
		<a href="" id="menu-block"></a>
		<a href="" id="menu-block"></a>
		<a href="" id="menu-block"></a>
   </div>
   <div class="menu-text">
		<div class="menu-text-main">
			<a id="menu-text-block"> <h3 align="center">ДИЗАЙНЕРЫ</h3> </a>
			<a id="menu-text-block"> <p><h3 align="center">ПОРТФОЛИО</h3></p></a>
			<a id="menu-text-block"> <p><h3 align="center">КАТЕГОРИИ</h3></p></a>
			<a id="menu-text-block"> <p><h3 align="center">ОФОРМЛЕНИЕ ЗАКАЗА</h3></p></a>
		</div>
   </div>
   
   <div class="content">
   @yield('content')
   </div>
  
 </body>
</html>

При переходе на страницу new происходит следующий вывод: @extends('layout') instead of @layout('layout').
Я, конечно, не очень опытный разработчик. Может это моя какая-то тупость и все же буду безмерно благодарна, если кто-то поможет мне разобраться.

#2 02.04.2014 20:15:03

Re: Почему не работает @extends в Laravel 4?

Используйте, пожалуйста, [CODE] для оформления кода.

  1. @extends('layout') instead of @layout('layout')

В вашем шаблоне так и написано? Это неверно, должно быть просто @extends('layout') — похоже, что вы скопировали это из какой-то статьи.

  1. xml<a id="menu-text-block"> <p><h3 align="center">

Ничего себе… a → p → h3.

Не в сети

#3 02.04.2014 20:37:48

Анастасия

Re: Почему не работает @extends в Laravel 4?

Такая конструкция тоже не работает. Я естественно пробовала ее изначально. Это меня и смутило.

#4 02.04.2014 20:40:45

Анастасия

Re: Почему не работает @extends в Laravel 4?

В выводе на странице оказывается подобная строчка :
@extends('layout').

И все...
P.s. Ну да, верстка кривая.

#5 02.04.2014 20:42:31

Re: Почему не работает @extends в Laravel 4?

  1. @extends('layout').

А точка-то зачем?

Не в сети

#6 02.04.2014 20:49:18

Re: Почему не работает @extends в Laravel 4?

Без точки.

Не в сети

#7 02.04.2014 21:00:58

Re: Почему не работает @extends в Laravel 4?

Я, честно говоря, не знаю, что у вас там не так. Посмотрите на следующее:

  1. Какая кодировка файла? Не UTF-8 with BOM? Должно быть или ASCII/ANSI, или UTF-8.
  2. Нет ли пробелов/пустых строк в начале, перед @extends?
  3. Если использовать любые конструкции Blade (@layout или {{ var }}, например) — они работают или выводятся как есть?

Не в сети

#8 02.04.2014 21:06:23

Re: Почему не работает @extends в Laravel 4?

Огромное вам спасибо!  Просто спасли) Честно говоря и не думала, что могут быть проблемы с кодировками. Кстати говоря, кодировка была UTF-8, но именно с ней и не работало. Переставила на ANSI и все заработало! Просто спасли)

Не в сети

#9 02.04.2014 21:08:17

Re: Почему не работает @extends в Laravel 4?

  1. Кстати говоря, кодировка была UTF-8, но именно с ней и не работало.

Что у вас за редактор? Похоже он сохраняет UTF-8 с BOM (это два «символа» в начале с кодами FF FE, которые вставляются перед любым содержимым файла). PHP этого не любит, только UTF-8 без BOM. Обычно редакторы делают это по умолчанию.

Я бы посоветовал выбрать другой редактор, если он косячит на таких мелочах.

Не в сети

#10 02.04.2014 23:27:05

Анастасия

Re: Почему не работает @extends в Laravel 4?

Элементарно notepad++. Да, я поставлю eclipse.

#11 03.04.2014 00:30:44

Re: Почему не работает @extends в Laravel 4?

Ну, Notepad++ — очень хороший редактор, я сам пользуюсь чем-то подобным (Notepad 2e). И в нём есть режим с и без BOM — именно «без» и должен быть по умолчанию.

http://i.imgur.com/ZMSDCSl.png

Не в сети

#12 13.08.2014 21:25:12

logosan

Re: Почему не работает @extends в Laravel 4?

Вот у меня такая же проблема, кодировка utf-8 без BOM, ничего вначале нет, но всё равно не работает sad

#13 13.08.2014 21:47:32

Re: Почему не работает @extends в Laravel 4?

Как именно проявляется «неработа»?

Не в сети

#14 27.12.2014 13:41:56

Александр

Re: Почему не работает @extends в Laravel 4?

Не работают blade шаблоны, код шаблона отображается как текст. С кодировкой все в порядке, лишних символов в коде нет (проверял) Кодировка UTF-8 без BOM. Неработа проявляется в неработе ))) Обычный текст вместо кода

Подвал раздела