Laravel 5.1: взгляды, разъяснения

1

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

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

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

Это путано, так что я смотрю на маленький крошечный ответ:

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

1 ответ

0

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

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

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

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

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

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

  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, которые сильно заставляют Blade?

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

  • 0
    Спасибо за ваш ответ! Что я имел в виду со своим вторым вопросом, так это то, что в Yii1 у меня был «основной макет» и мои файлы просмотра. Поэтому, когда я вызвал $this->render("myview"); , представление будет визуализировано, а затем будет загружен макет, и представление будет помещено туда как <?=$content?> . Это возможно с Laravel, вообще?
  • 0
    Да, это именно то, что я сделал в коде выше. Просто используйте ваши представления и макет с расширением .blade.php . В @yield('body') примере @yield('body') - это то же самое, что и <?=$content?> .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню