视图

视图是 Pinatra 的一个低负载组件,几乎没有性能损失,采用 PHP 本身作为模板引擎。

准备工作

在使用视图功能之前,我们需要新建一个文件夹作为视图文件的根目录,并定义一个常量传递这个信息。

新建文件夹

新建一个和 public 同级的文件夹 views

告诉 Pinatra

public/index.php 中增加下面这行代码即可:

define('VIEW_BASE_PATH', dirname(dirname(__FILE__)).'/views/');

创建视图文件

创建 views/home.php 文件,内容如下:

<?php
echo $title.'<br>';
echo $home_page;

调用视图并传入参数

无论在闭包还是在控制器方法中,你都可以使用以下语句简单地调用视图:

get('/', function() {
  return view('home')->withTitle('Pinatra')
                     ->withHomePage('HomePage!');
});
class HomeController
{
  public function home()
  {
    return view('home')->withTitle('Pinatra')
                       ->withHomePage('HomePage!');
  }
}

访问相应 URL,你会得到如下页面:

view

小贴士

view() 接收一个字符串作为文件路径,其支持使用多级子文件夹,只需要以 /. 隔开,例如 admin/homeadmin.home

传参方式

with()

view('home')->with('title', 'Piantra'); // $title == 'Pinatra'

以 with 开头的所有函数

view('home')->withTitle('Piantra'); // $title == 'Pinatra'
view('home')->withtitle('Piantra'); // $title == 'Pinatra'
view('home')->withHomePage('Piantra'); // $home_page == 'Pinatra'

withSomeThing() 变量名会从驼峰法转换成蛇形,传入视图。

返回

调用视图一定要使用 return view() 方式。

最近更新: 2018/9/6 下午5:42:56