Status Draft
Todo Fill in empty topics, these should be proper code examples and not repeat general/views
官方最后更新时间 2009/01/29 06:32

视图库(View Class)

详细的视图概述请参阅:General/Views

初始化

创建视图库的初始化

$view = new View('welcome');

设置数据

这里有几种方法传递数据到视图中。

使用 View 对象:

// 使用 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 对象加载
$view = new View('yourview', array('title' => "Welcome to Kohana !"));

方法

set()

set() 设置在视图中可以使用的变量。你也可以使用数组的形式设置和赋值变量。$this→view→your_variable 同样可以完成。

$view = new View('welcome');
 
$view->set('title', 'Elvis lives');

bind()

bind() 这就像设置赋值的指定的变量。

$view = new View('welcome');
 
$var='Some value';
 
$view->bind('title', $var);
 
$var='Another value';
 
$view->render(true); // 'title' 变量的值为 'Another value'

set_global()

set_global() 设置变量值到所有的视图中。This means you can use it with views in views for example.

// 加载视图
$view = new View('page');
$view->header = new View('header');
 
// 在所有视图中设置变量
$view->set_global('title', 'Title of page'); // set variable $title for example in view header.php
 
$view->render(TRUE);

render()

render() 呈现视图的输出。

// 呈现并保持,默认没有浏览器输出
$this->template->content = $this->session->get_once('message').$content->render();
 
// 输出视图到浏览器
$this->template->render(TRUE);

factory()

静态方法。参数和创建实例化是一样的。

它会创建一个视图实例化并立即返回它,所以方法链接可用。

public function _add_breadcrumb()
{
   $crumbs = View::factory('admin/breadcrumb')
        ->set('crumbs', html::breadcrumb())
        ->render();
 
    $this->template->content = $crumbs.$this->template->content;
}

set_filename()

set_filename() 为视图设置文件名

$view=new View;
 
if(request::is_ajax()) // request 辅助函数
{
  $view->set_filename('ajax_view');
}
else
{
  $view->set_filename('html_view');
}
 
$view->render(TRUE);
libraries/view.txt · 最后更改: 2009/02/02 23:36 由 icyleaf