开发手册 欢迎您!
软件开发者资料库

FuelPHP - 视图

FuelPHP视图 - 从简单和简单的步骤学习FuelPHP,从基本到高级概念,包括简介,安装,体系结构概述,简单Web应用程序,配置,控制器,路由,请求和响应,视图,演示者,模型和数据库,表单编程,验证,高级表单编程,文件上传,Ajax,HMCV请求,主题,模块,包,Cookie和会话管理,事件,电子邮件管理,Profiler,错误处理和调试,单元测试,完整的工作示例。

查看是MVC应用程序的表示层.它将应用程序逻辑与表示逻辑分开.当控制器需要生成HTML,CSS或任何其他内容时,它会将任务转发给视图引擎.

FuelPHP提供了一个简单灵活的类View,具有所有必要的功能视图引擎. View类支持渲染视图文件. View文件是一个带有嵌入式PHP指令的HTML页面.可以使用View类作为PHP数组设置视图文件的变量,并使用数组的键在视图文件中引用.让我们检查一下View类的一些重要方法.

forge

  • 目的 : 创建一个新的View对象

  • 参数 : 以下是参数

    • $ file : 视图文件相对于views文件夹的路径,fuel/app/views

    • $ data : 值数组

    • $ filter : 设置自动编码,默认为主配置文件中的设置

  • 返回 : 视图实例

例如,

$view = View::forge ('path/to/view', array(    'title' => "Show employee,    'employees' => $employees, ));

auto_filter

  • 目的 : 设置是否对数据进行编码

  • 参数 : 以下是参数

    • $ filter :  true/false

  • 返回 : 当前视图对象

例如,

$view->auto_filter(); $view = $view->auto_filter(false);

set_filename

  • 目的 : 允许设置或更改视图文件.

  • 参数 : 以下是参数 -

    • $ file : 查看相对于views文件夹的文件的路径,燃料/app/views

  • 返回 : 当前视图对象

例如,

$view = new View();$view>set_filename('path/to/view');

设置

  • 目的 : 设置一个或多个变量的值

  • 参数 : 以下是参数

    • $ key : 变量名称或值数组

    • $ value : 值/null

    • $ filter : 编码设置,真/假

  • 返回 : 当前视图对象

例如,

$view = new View(); $view->set(array('name' => 'Jon'));

set_global

set_global类似于 set ,但它适用于所有所有视图都可以访问视图和变量.这是一个静态方法.

View::set_global('name', 'Jon', false);

set_safe

  • 目的 : 使用安全编码设置一个或多个变量的值.

  • 参数 : 以下是参数 :

    • $ key : 变量名称或值数组

    • $ value : 值/null

  • 返回 : 当前视图对象

例如,

$view = new View(); $view->set_safe(array('name' => 'Jon'), null);

获取

  • 目的 : 获取一个或多个变量的值

  • 参数 : 以下是参数

    • $ key : 变量名称

    • $ default : 如果找不到密钥则返回默认值

  • 返回 : 输入键的值

例如,

$view = new View(); $name = $view>get('name');  // name = 'Jon'

render

  • 目的 : 通过将视图文件与本地和全局变量合并来将视图文件渲染为字符串

  • 参数 : 以下是参数 :

    • $ file : 视图文件名

  • 返回 : 渲染的视图文件为字符串

例如,

$html = View::forge()->render('/path/to/view');

创建视图

要理解视图,让我们修改操作方法 action_show of controller, Controller_Employee .

employee.php

现在在views目录中创建一个文件夹employee,位于 fuel/app/views .然后,在employee文件夹中创建一个文件 show.php 并添加以下代码.

show.php

 My first view 

现在,请求url http://localhost:8080/employee/show ,它会产生以下结果.

显示视图

将数据传递给视图

我们可以使用前面讨论的View方法将数据传递给视图.以下是一个简单的例子.

employee.php

class Controller_Employee extends Controller {    public function action_show() {       $data = array(); //stores variables going to views       $data['name'] = ‘Jon’;       $data[‘job’] = ‘Designer’;              //assign the view to browser output       return View::forge('employee/show', $data);    } }

现在,在视图文件中添加更改.

show.php

           Hello, .       Your job is, .     

请求URL后,它将显示名称和作业,如下所示;

传递查看请求

查看过滤器

视图使用输出编码传递您想要的任何内容.如果你想传递未过滤的数据,我们可以使用set方法.

employee.php

class Controller_Employee extends Controller {    public function action_show() {       $view = \View::forge('employee/show');       $view->set('name', 'Jon', true);       $view->set('job', 'Designer', false);       return $view;    } }

请求URL后,它将以强调方式显示作业详细信息,如下所示.

查看过滤器

嵌套视图

FuelPHP支持嵌套视图.在嵌套视图中,视图可以包含一个或多个视图.要在另一个视图中设置视图,我们可以使用以下渲染方法.

employee.php

class Controller_Employee extends Controller {    public function action_nestedview() {             //assign variables       $data = array();       $data['title'] = 'Home';        $data['name'] = 'Jon';       $data['job'] = 'Designer';        $views = array();       $views['head'] = View::forge('head', $data)->render();       $views['content'] = View::forge('employee/show', $data)->render();        return View::forge('layout', $views, false)->render();    } }

fuel/app/views/layout.php

                                  

fuel/app/views/head.php

   <?php echo $title; ?>

fuel/app/views/employee/show.php

Hello, . Your job is, .

在请求URL http://localhost:8080/employee/nestedview 并检查源视图后,它给出了以下代码.

           Home                  Hello, Jon.       Your job is, Designer.     

模板控制器

FuelPHP提供一个控制器,Controller_Template具有内置布局概念.布局概念使用Controller的 before() after()方法完成.要使用模板控制器,我们需要使用Controller_Template而不是Controller来扩展控制器.在使用after()/before()方法时,我们需要调用parent :: before和parent :: after,否则,模板会中断.

template.php

这是Fuel中的默认模板文件.模板文件用于调用JS,CSS,HTML和调用视图部分.它位于 fuel/app/views/.模板用于将视图包装在带有页眉,页脚,侧边栏等的布局中.我们可以使用操作方法中的$ template变量更改默认模板,如下所示.

fuel/app/classes/controller/test.php

template->title = 'Example Page';          $this->template->content = View::forge('test/index');       }    }

fuel/app/views/template_test.php

                   <?php echo $title; ?>                      
                
     

fuel/app/views/test/index.php

My Test page

现在,请求URL http://localhost:8080/test ,它会产生以下结果.

结果

                   Example Page                        
          

My Test page

       
     

生成视图页面

您可以使用Fuel的Oil控制台生成视图页面.以下是基本语法.

oil g controller    ..

要生成包含主页和登录页面的管理控制器,请使用以下命令.

oil g controller admin home login

结果

Creating view: /path/to/app/fuel/app/views/admin/home.php Creating view: /path/to/app/fuel/app/views/admin/login.php Creating controller: /path/to/app/fuel/app/classes/controller/admin.php