2013-09-09 1 views
0

Чтобы расширить шаблон лезвия вы должны написатьLaravel: Как найти правильный шаблон шаблона лезвия?

@extends('folder.template_name') 

Это работает для стандартной установки.

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

Моя структура выглядит следующим образом:

app 
-- modules 
-- modules\backend 
-- modules\backend\views 
-- modules\backend\views\layouts\master.blade.php 
-- views 
-- views\layouts\master.blade.php 

Так что, когда я во внутреннем интерфейсе и попытаться показать мой шаблон:

// app\modules\backend\views\page\index.blade.php 
@extends('layouts.master') 

Laravel визуализирует приложение \ Views \ раскладок \ мастер. blade.php вместо app \ modules \ backend \ views \ layouts \ master.blade.php

Я пробовал много имен внутри этого @extends, например

@extends('app\modules\backend\views\layouts\master') 
@extends('app.modules.backend.views.layouts.master') 
@extends(base_path(). '\app\modules\backend\views\\' . 'layouts.master') 

Ничего не работает.

ответ

1

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

@extends('backend::layouts.master') 

Эти соглашения описаны в документации, для получения дополнительной информации, пожалуйста, обратитесь к

Laravel 4 package conventions

+0

Это решение. Оно работает!!! Можете ли вы рассказать мне, где я могу найти больше об этом? Есть ли у вас какие-либо источники об этом? – Tipo

+0

- это обозначение, которое вы используете в других местах (View :: make, Config :: get и т. Д.), Чтобы обозначить, что вы претендуете на пакет или модуль, поэтому я думал, что это может сработать и для вашего дела. Я не уверен, что эта информация указана в любом месте документации ... – Gadoma

+0

Я вижу, что она уже обновлена ​​в документах, я отредактировал свой ответ, чтобы включить это. – Gadoma

0

Убедитесь, что/приложение/конфигурации /view.php имеет запись пути, где расположены эти виды.

I.E.

'paths' => array(__DIR__.'/../views'), 

Для

'paths' => array(
    __DIR__.'/../views', 
    __DIR__.'/../modules/backend/views' 
), 

или независимо представляет ваш фактический путь.

Здесь вы можете посмотреть, как загружать загрузку в виде другого механизма, если ваши представления находятся в динамически сгенерированных папках. Может быть, событие module :: boot, которое добавляет путь к пути к массиву путей представления? Просто идея.