Phalcon 使用视图

输出一个变量到视图

 // 控制器代码
 $test_str= 'test';
 $this->view->test_str= $test_str;

// 视图文件代码
<p>变量test_str:<?php echo $test_str; ?></p>

视图的层级关系
在Phalcon 中 视图文件会遵循一个层级关系
每次调用视图都会按照层级关系调用的

流程如下

先调用视图文件夹下的index.volt
(.phtml 我开启了volt 模板引擎所以后缀是这个)
文件路径views\index.volt

再调用内层控制器公告视图文件
例如 控制器 User 那么调用的文件是views\layouts\user.volt

最后调用该方法的 视图文件
例如我访问的是 User控制器的 login 方法 那么调用的文件是 views\user\test.volt

实例代码

// 控制器代码
<?php
use Phalcon\Mvc\Controller;
class UserController extends ControllerBase
{
    // 登陆
    public function loginAction(){
    }
}

/* 视图文件代码 */

// views\index.volt
<!DOCTYPE html>
<html>
<head>
    <title>测试 Phalcon的模板引擎</title>
    <meta charset="utf-8" />
</head>
<body>
    <!-- 
        目录路径:views\index.volt
        所有调用都会经过我
        这里可以放置一些公共的资源
    -->
    <!-- 外侧模板开始 可以用来做公共部分的模板 -->
    <h1>我是最外层的内容,下面的任意目录的模板都会继承我!</h1>
    <!-- 外层模板结束 -->

    <?php echo $this->getContent(); ?>
</body>
</html>


// views\layouts\user.volt
<!-- 
    目录路径:views\layouts\user.volt
    user 控制器的所有视图文件都会经过我
    这里可以放置  针对User控制器视图文件  的公共资源
-->
<!-- User 控制器内容视图开始 -->
<h2>我处在内层文件中,只要是user控制器中的视图文件,都会经过我!</h2>
<!-- User 控制器内容视图结束 -->
<?php echo $this->getContent(); ?>


// views\user\login.volt
<!-- 
    目录路径:views\user\login.volt
    这里是test 的内容部分
    我负责显示每个方法的个性化内容
-->
<!-- test方法视图开始 -->
<h3>我才是testAction 方法对应的视图文件!</h3>
<!-- test方法视图结束 --> 

最后生成的html代码

<!DOCTYPE html>
<html>
<head>
    <title>测试 Phalcon的模板引擎</title>
    <meta charset="utf-8" />
</head>
<body>
    <!-- 
        目录路径:views\index.volt
        所有调用都会经过我
        这里可以放置一些公共的资源
    -->
    <!-- 外侧模板开始 可以用来做公共部分的模板 -->
    <h1>我是最外层的内容,下面的任意目录的模板都会继承我!</h1>
    <!-- 外层模板结束 -->



    <!-- 
        目录路径:views\layouts\user.volt
        user 控制器的所有视图文件都会经过我
        这里可以放置  针对User控制器视图文件  的公共资源
    -->
    <!-- User 控制器内容视图开始 -->
    <h2>我处在内层文件中,只要是user控制器中的视图文件,都会经过我!</h2>
    <!-- User 控制器内容视图结束 -->



    <!-- 
        目录路径:views\user\login.volt
        这里是login方法的内容部分
        我负责显示每个方法的个性化内容
    -->
    <!-- login方法视图开始 -->
    <h3>我才是loginAction 方法对应的视图文件!</h3>
    <!-- login方法视图结束 -->
</body>
</html>
// 视图层级关系 具体请看这个方法生成的源代码


        //  =================  关闭视图渲染层级关系 =================
        /* 

            有下面几种模式

            ORDER 0
            LEVEL_NO_RENDER 
            表示,以避免产生任何形式的演示。

            ORDER 1
            LEVEL_ACTION_VIEW
            生成表示与该操作关联到视图。

            ORDER 2
            LEVEL_BEFORE_TEMPLATE
            生成控制器前演示模板布局。

            ORDER 3
            LEVEL_LAYOUT
            生成演示控制器布局。

            ORDER 4
            LEVEL_AFTER_TEMPLATE
            生成演示控制器后的模板布局。

            ORDER 5
            LEVEL_MAIN_LAYOUT 
            生成报告的主要布局。文件视图/ index.phtml 

        */

        // 页面空白
        // $this->view->setRenderLevel(0);

        // =================  1 =================
        // 
        // 主要内容
        // 
        // $this->view->setRenderLevel(1);
        // 
        // 内容如下
        // <!-- 
        //  目录路径:views\user\test.volt
        //  这里是login 的内容部分
        //  我负责显示每个方法的个性化内容
        // -->
        // <!-- login 方法视图开始 -->
        // <h3>我才是loginAction 方法对应的视图文件!</h3>
        // <!-- login 方法视图结束 -->

        // =================  2 =================
        // 
        // 主要内容
        // $this->view->setRenderLevel(2);
        // 
        // 内容如下
        // <!-- 
        //  目录路径:views\user\login.volt
        //  这里是login 的内容部分
        //  我负责显示每个方法的个性化内容
        // -->
        // <!-- login方法视图开始 -->
        // <h3>我才是loginAction 方法对应的视图文件!</h3>
        // <!-- login方法视图结束 -->

        // =================  3  =================
        // 
        // 显示控制器公共视图 和主要方法内容视图
        // $this->view->setRenderLevel(3);
        // 
        // 内容如下
        // <!-- 
        //  目录路径:views\layouts\user.volt
        //  user 控制器的所有视图文件都会经过我
        //  这里可以放置  针对User控制器视图文件  的公共资源
        // -->
        // <!-- User 控制器内容视图开始 -->
        // <h2>我处在内层文件中,只要是user控制器中的视图文件,都会经过我!</h2>
        // <!-- User 控制器内容视图结束 -->
        //
        // 
        // <!-- 
        //  目录路径:views\user\login.volt
        //  这里是login 的内容部分
        //  我负责显示每个方法的个性化内容
        // -->
        // <!-- login方法视图开始 -->
        // <h3>我才是loginAction 方法对应的视图文件!</h3>
        // <!-- login方法视图结束 -->

        // =================  4  =================
        // 
        // 显示控制器公共视图 和主要方法内容视图
        // $this->view->setRenderLevel(4);
        // 
        // 内容如下
        // <!-- 
        //  目录路径:views\layouts\user.volt
        //  user 控制器的所有视图文件都会经过我
        //  这里可以放置  针对User控制器视图文件  的公共资源
        // -->
        // <!-- User 控制器内容视图开始 -->
        // <h2>我处在内层文件中,只要是user控制器中的视图文件,都会经过我!</h2>
        // <!-- User 控制器内容视图结束 -->
        //
        // 
        // <!-- 
        //  目录路径:views\user\login.volt
        //  这里是login 的内容部分
        //  我负责显示每个方法的个性化内容
        // -->
        // <!-- login方法视图开始 -->
        // <h3>我才是loginAction 方法对应的视图文件!</h3>
        // <!-- login方法视图结束 -->


        // =================  5  =================
        // 
        // 开启所有渲染
        // $this->view->setRenderLevel(5);
        // <!DOCTYPE html>
        // <html>
        // <head>
        //  <title>测试 Phalcon的模板引擎</title>
        //  <meta charset="utf-8" />
        // </head>
        // <body>
        //  <!-- 
        //      目录路径:views\index.volt
        //      所有调用都会经过我
        //      这里可以放置一些公共的资源
        //  -->
        //  <!-- 外侧模板开始 可以用来做公共部分的模板 -->
        //  <h1>我是最外层的内容,下面的任意目录的模板都会继承我!</h1>
        //  <!-- 外层模板结束 -->
        //  
        //  
        //  
        //  <!-- 
        //      目录路径:views\layouts\user.volt
        //      user 控制器的所有视图文件都会经过我
        //      这里可以放置  针对User控制器视图文件  的公共资源
        //  -->
        //  <!-- User 控制器内容视图开始 -->
        //  <h2>我处在内层文件中,只要是user控制器中的视图文件,都会经过我!</h2>
        //  <!-- User 控制器内容视图结束 -->
        //  
        //  
        //  <!-- 
        //      目录路径:views\user\login.volt
        //      这里是login 的内容部分
        //      我负责显示每个方法的个性化内容
        //  -->
        //  <!-- login方法视图开始 -->
        //  <h3>我才是loginAction 方法对应的视图文件!</h3>
        //  <!-- login方法视图结束 --></body>
        // </html>
        // 




        // =================  选择视图文件  =================
        //
        // 选择利用user login 这个视图文件来渲染这个方法
        // $this->view->pick("User/login");


        // =================  关闭视图  =================
        // 
        // $this->view->disable();


        // =================  直接跳转  =================
        // 
        // 直接跳转到index控制器的index 方法
        // $this->response->redirect('index/index');




        // =================  局部视图  =================
        // 
        // 在视图文件中 
        // 
        // shared 文件夹下的 header文件
        // 
        // $this->partial("shared/header")
        //
        // ==== 实例代码 ====
        // 
        // <!DOCTYPE html>
        // <html>
        // <head>
        //  <title>测试 Phalcon的模板引擎</title>
        //  <meta charset="utf-8" />
        // </head>
        // <body>
        //  php $this->partial("shared/header") 
        //  <!-- 
        //      目录路径:views\index.volt
        //      所有调用都会经过我
        //      这里可以放置一些公共的资源
        //  -->
        //  <!-- 外侧模板开始 可以用来做公共部分的模板 -->
        //  <h1>我是最外层的内容,下面的任意目录的模板都会继承我!</h1>
        //  <!-- 外层模板结束 -->
        //  php echo $this->getContent(); 
        // 
        // 
        //  php $this->partial("shared/footer") 
        // </body>
        // </html>


        // =================  控制器传值给视图  =================
        // 
        // ===== 视图的setVar 方法  =====
        // 
        // 单个
        // $this->view->setVar("test", "test");
        // 
        // 多个 数组形式
        // $this->view->setVars(array(
        //      'title' => 'title',
        //      'content' => 'content'
        // ));
        // 
        // 魔术方法赋值
        // $this->view->ABC = 'ABC';
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值