Laravel 5.1:观点,澄清

时间:2015-11-14 01:15:57

标签: php yii laravel-5

所以当我最初把手放在Laravel上时,我正在转移Yii1。在Yii中,我们使用普通的PHP模板;我不介意,因为我真的很喜欢他们。

但是,当我了解Blade以及Laravel如何来回记录Blade并且​​几乎没有提到使用裸PHP模板时,我感到很恼火。

我汇总了一个项目,它只为我提供了一个PHP视图引擎。但就在几分钟前,我实际上看到了它:PhpEngine.php。 Diggin更深,我面对;我不能只是去弃用我的项目,但我也可以去深入挖掘。

这太令人困惑了,所以我看起来没有回答过一小部分问题:

  • 当我使用View::addNamespace()时,我也可以view("foo::my.template"),对吧?
  • 我如何实际使用布局/模板?就像在,我已经写了文档,我想在其中提供rmy视图。如何使用 PHP视图执行此操作?在刀片中,我们得到@extend或其他东西,但我似乎无法找到原始PHP模板。
  • 我在哪里可以看到一些正确的视图文档和示例,而不是laravel.com那些推动Blade那么多?

1 个答案:

答案 0 :(得分:0)

  

当我使用view::addNamespace()时,我也可以view("foo::my.template"),对吗?

是。确实如此。通常,此格式适用于第三方软件包。例如,如果您考虑使用包,则将视图命名空间称为:

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

现在,您可以将视图调用为view('foo::whatever')

  

我如何实际使用布局/模板?就像在,我已经写了文档,我想在其中提供rmy视图。如何使用裸PHP视图执行此操作?在刀片中,我们得到@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>
    

    如上所述,有两个&#34;部分&#34;他们的内容可以根据扩展此布局的每个视图进行更改:标题正文

  2. 扩展每个视图的布局

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

    注意如何使用@section标记设置titlebody。在每个内部,您可以定义要显示的内容。最后,在您的控制器中,根据您的需要拨打view('foo::contact')view('contact')

  3.   

    我在哪里可以看到一些正确的视图文档和示例,而不是laravel.com那些推动Blade那么多?

    嗯,刀片系统不是太深。我认为laravel的文档足以补充你在这方面的知识。