| 状态 | 草稿 |
|---|---|
| Todo | Fill in empty topics, these should be proper code examples and not repeat general/views |
| 官方最后更新时间 | 2008/08/21 04:52 |
更深层的概述请看 视图(Views)。
创建一个视图类的实例
$view = new View('welcome');
这里有几种方法可以把数据传递到视图中去:
使用 View 对象:
// 加载视图 $view = new View('yourview'); // 在视图中加载变量 $view->title = "Welcome to Kohana !"; $view->heading = "My Heading"; $view->content = "My content here."; //------- 或者 -------- $view->set('title', "Welcome to Kohana !"); $view->set('heading', "My Heading"); $view->set('content', "My content here.");
你也可以使用数组的方式创建视图:
// 加载视图 $view = new View('yourview', array('title' => "Welcome to Kohana !"));
set() 在视图中设置一个变量。只需要提供以数组方式的键和值就可以。 $this→view→your_variable 相同的可以用来完成。
$view = new View('welcome'); $view->set('title', 'Elvis lives');
bind() 类似于 set() 但变量是可变的。
$view = new View('welcome'); $var = 'Some value'; $view->bind('title', $var); $var='Another value'; $view->render(true); //这里输出的 'title' 变量则会是 'Another value'
set_global() 类似于 set() 但这些变量在所有的视图中可用。即你可以在视图中使用视图。
// 加载视图 $view = new View('page'); $view->header = new View('header'); // 在所有的视图设置变量 $view->set_global('title', 'Title of page'); // 在试图文件 header.php 设置 $title 变量 $view->render(TRUE);
render() 视图输出。
// 输出并存放,默认不浏览器输出。 $this->template->content = $this->session->get_once('message').$content->render(); // 输出到浏览器上 $this->template->render(TRUE);
静态方法。创建一个参数一样的视图实例。
它创建一个视图并立即返回,方法链锁是有可能的。
public function _add_breadcrumb() { $crumbs = View::factory('admin/breadcrumb') ->set('crumbs', html::breadcrumb()) ->render(); $this->template->content = $crumbs.$this->template->content; }
set_filename() 为视图设置文件名
$view=new View; if(request::is_ajax()) //要求辅助函数存在在 2.2 版本 { $view->set_filename('ajax_view'); } else { $view->set_filename('html_view'); } $view->render(TRUE);