多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 视图 ## 视图 视图是存储基于系统的表示逻辑的好方法,例如API或端点使用的标记,或与CMS和后端区域共享的标记。[邮件服务](https://octobercms.com/docs/services/mail)还使用视图来提供默认模板内容。视图通常存储在`views`插件目录中。 一个简单的视图可能看起来像这样: ~~~ <!-- View stored in plugins/acme/blog/views/greeting.htm --> <html> <body> <h1>Hello, {{ name }}</h1> </body> </html> ~~~ 也可以使用`.php`扩展名,使用PHP模板来解析视图: ~~~ <!-- View stored in plugins/acme/blog/views/greeting.php --> <html> <body> <h1>Hello, <?php echo $name; ?></h1> </body> </html> ~~~ 可以使用以下`View::make`方法将该视图返回到浏览器: ~~~ return View::make('acme.blog::greeting', ['name' => 'Charlie']); ~~~ 第一个参数是“路径提示”,其中包含插件名称,以两个冒号分隔`::`,后跟视图文件名。传递给第二个参数`View::make`是应该对视图可用的数据数组。 > **注意**:路径提示区分大小写,插件名称应始终小写。 #### 将数据传递到视图 ~~~ // Using conventional approach $view = View::make('acme.blog::greeting')->with('name', 'Steve'); // Using magic methods $view = View::make('acme.blog::greeting')->withName('steve'); ~~~ 在上面的示例中,变量`name`可以从视图访问,并且包含`Steve`。如上所述,如果要传递数据数组,可以将其作为方法的第二个参数`make`: ~~~ $view = View::make('acme.blog::greeting', $data); ~~~ 也可以在所有视图之间共享一条数据: ~~~ View::share('name', 'Steve'); ~~~ #### 将子视图传递到视图 有时您可能希望将一个视图传递到另一个视图。例如,给定一个子视图存储在`plugins/acme/blog/views/child/view.php`,我们可以将其传递给另一个视图,如下所示: ~~~ $view = View::make('acme.blog::greeting')->nest('child', 'acme.blog::child.view'); $view = View::make('acme.blog::greeting')->nest('child', 'acme.blog::child.view', $data); ~~~ 然后可以从父视图呈现子视图: ~~~ <html> <body> <h1>Hello!</h1> {{ child|raw }} </body> </html> ~~~ #### 确定是否存在视图 如果需要检查视图是否存在,请使用以下`View::exists`方法: ~~~ if (View::exists('acme.blog::mail.customer')) { // } ~~~