2015-11-14 4 views
1

Итак, когда я изначально положил руки на Ларавель, я перешел от Yii1. В Yii мы использовали бы простые шаблоны PHP; которые я не возражаю, так как я на самом деле люблю их таким образом.Laravel 5.1: Просмотров, уточнения

Однако, когда я узнал о Blade и как Laravel задокументировал Blade взад и вперед, и едва даже упомянул об использовании простых шаблонов PHP, я был ... раздражен.

Я объединил проект, который предоставит мне только механизм просмотра PHP. Но всего несколько минут назад я действительно видел это: PhpEngine.php. Диггин глубже, я встретился лицом к лицу; Я не могу просто пойти и осудить свой проект, но я также могу пойти и копать глубже.

Это ооочень запутанным, поэтому я ищу ВЗ есть маленький капельку вопросов ответил:

  • Когда я использую View::addNamespace(), я могу просто сделать view("foo::my.template") тоже, верно?
  • Как я могу использовать макет/шаблон? Как и в, у меня есть документ, в котором я хочу просмотреть rmy-представления. Как мне это сделать с голыми PHP взгляды? IN, мы получаем @extend или что-то в этом роде, но я не могу найти это для сырых шаблонов PHP.
  • Где я могу найти подходящие документы и примеры для просмотра вместо laravel.com, которые сильно нажимают Blade?

ответ

0

Когда я использую view::addNamespace(), я могу просто сделать view("foo::my.template") тоже, верно?

Да. Оно делает. Обычно этот формат применяется сторонними пакетами. Например, если вы имеете в виду, используя пакет, вы вызываете вид имен, как:

$this->loadViewsFrom(__DIR__.'/path/to/views', 'foo'); 

Теперь вы можете назвать вид, как view('foo::whatever')

Как я на самом деле использовать макет/шаблон ? Как и в, у меня есть документ, в котором я хочу просмотреть rmy-представления. Как мне это сделать с голыми представлениями PHP? IN, мы получаем @extend или что-то в этом роде, но я не могу найти это для сырых шаблонов PHP.

Я не понимаю, что такое I can not seem to find that for raw PHP templates. Но позвольте мне показать вам пример, используя систему лезвия:

  1. Создать файл макета:

    // master.blade.php 
    <!DOCTYPE html> 
    <html lang="en"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <meta charset="utf-8"> 
        <title>@yield('title')</title> 
    <head> 
    <body> 
        @yield('body') 
    </body> 
    </html> 
    

    Как вы можете заметить, выше, есть две «секции», что их содержание может быть изменено в соответствии с каждый вид, который расширяет этот макет: заголовок и корпус.

  2. Расширение макет для каждого вида

    //contact.blade.php 
    @extends('master') 
    @section('title') 
        Contact us 
    @stop 
    @section('body') 
        <h1>Thank you for contact us</h1> 
    @stop 
    

    Обратите внимание, как title и body устанавливаются с помощью @section тега. Внутри каждого из них вы определяете отображаемый контент.Наконец, в вашем контроллере просто позвоните view('foo::contact') или view('contact') в соответствии с вашими потребностями.

Где я могу увидеть некоторые правильные просматривать документы и примеры, а не на laravel.com те, которые толкают лезвие, что много?

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

+0

Благодарим вас за ответ! Что я имел в виду с моим вторым вопросом, так это то, что в Yii1 у меня был «основной макет» и мои файлы просмотра. Поэтому, когда я вызывал '$ this-> render (" myview ");', представление получило бы визуализацию, а затем макет был бы загружен, а представление помещено туда как ''. Возможно ли это с Ларавелом? –

+0

Да, это именно то, что я сделал в приведенном выше коде. Просто используйте свои представления и макет с расширением '.blade.php'. В примере '@yield ('body')' такой же, как '' для вашего случая. – manix