美文网首页ThinkPHP5
ThinkPHP 5: 创建控制器、模板,并调用

ThinkPHP 5: 创建控制器、模板,并调用

作者: xiaojianxu | 来源:发表于2017-11-01 18:26 被阅读706次

1.0、创建控制器(controller)

ThinkPHP 5.0 创建一个控制器,非常简单,需要注意的是命名空间必须要与所谓路径相一致。

配置文件 config.php 中,默认指定了应用的命名空间为 "app"。 配置选项为:"app_namespace" => 'app'。

这等于说,应用目录所在的命名空间就是 app。新建一个控制器时,命名空间就是从 app 开始。

<?php
    // 不继承 \think\Controller 的简单控制器
    namespace app\controller;
    class Index {
        
        public function index()
        {
            echo "我是控制器";
        }
        
        public function render()
        {
            echo "通过调用助手函数 view()来处理模板文件";
            return view();
        }

        public function render_fix()
        {   
            // 通过给函数 view 传送参数,调用指定的路径中模板文件.
            // fix.html 会默认是 index/fix.html
            // 如果需要指定目录,那需要加上目录,如: test/fix.html.
            return view('fix.html');
        }
    }
?>

注意:

ThinkPHP 5 完整版,应用默认配置就是支持多模块设置 'app_multi_module' => true 。

 // 是否支持多模块
    'app_multi_module'       => true,

模块设置:默认模块为 index, 默认控制器 Index,默认操作 index。配置选项如下:


    // 默认模块名
    'default_module'         => 'index',
    // 禁止访问模块
    'deny_module_list'       => ['common'],
    // 默认控制器名
    'default_controller'     => 'Index',
    // 默认操作名
    'default_action'         => 'index',
    // 默认验证器
    'default_validate'       => '',
    // 默认的空控制器名
    'empty_controller'       => 'Error',
    // 操作方法后缀
    'action_suffix'          => '',
    // 自动搜索控制器
    'controller_auto_search' => false,

所以,如果你是在模块中,添加新的控制器,声明命名空间时,必须加上模块名称,如:

<?php
  namespace app\index\controller;
 
  class Login
  {
      public function index() {
          // ....
      }
  }

1.1 URL 访问控制器

http://localhost/目录名称/index.php/模块名称/控制器/方法,访问的控制器是 index 与 index方法

1.2 创建一个模板文件,并通过视图调用该模板文件。
(如果想要实现控制器方法自动调用,那么就应该在模块下的 view 目录中,新建与控制器名称相同的目录,并在该目录下创建与方法名相同的模板文件)

场景:给 index 模块中的控制器 Index 中的操作 index,添加一个模板文件。
操作:现在 index 模块中,添加一个 view 目录,再创建一个 index 目录,最后新建一个 index.html 模板文件。

创建模板文件有很多种方式,上面的方式可以实现在控制器中,视图不必指定模板文件路径,框架就会自动调用。

1.3 控制中调用模板文件
调用模板文件的方式有两种,一种是继承 \think\Controller,通过 $this->fetch('模板相对路径/模板绝对路径') 调用;另一种是直接使用 view(‘模板相对路径/模板绝对路径’) 函数。

不指定模板路径,都会默认按照 “当前模块/控制器名/操作名.html” 路径进行查找使用。
$this->fetch();(注意:必须继承 \think\Controller)
如果不继承,可以直接使用函数 view() 调用模板


魔术方法:

CLASS , 获取当前类

FUNCTION, 获取当前的方法

相关文章

  • ThinkPHP 5: 创建控制器、模板,并调用

    1.0、创建控制器(controller) ThinkPHP 5.0 创建一个控制器,非常简单,需要注意的是命名空...

  • laravel5.8无限极分类

    创建资源控制器 创建模型和迁移文件 修改迁移文件创建分类表 路由 控制器 模型 列表模板 添加模板

  • tp5 foreach分页类

    使用方法:在控制器中调用这个扩展类,new一个分页对象$p,并渲染到模板 注意:支持URL模式,模块/控制器/操作...

  • Runtime | 方法交换

    准备工作/ 创建Person类并声明两个方法 方法简单实现 控制器调用 注意 method_exchangeImp...

  • ThinkPHP 5:使用模板布局

    @20171106 - Day 9 1、ThinkPHP 5 模板布局:通过配置文件实现模板布局 1.1 开启配置...

  • PHP 后台开发笔记 环境搭建

    工具 MAMP 集成环境 PHPstorm 开发工具 集成框架以及模板 把ThinkPHP下载放到htdocs创建...

  • 【TP5-09】模板输出

    1、模板输出通常在控制器中读取模型数据并渲染模板输出 2、列表数据 3、输出数组 4、影藏属性 5、输出指定属性 ...

  • Thinkphp5.1 的多级控制器和分层控制器

    Thinkphp5.1 的多级控制器和分层控制器 1.什么是多级控制器?如何进行定义使用? 根据thinkphp的...

  • 《Cocoa Design Patterns》

    没想好怎么写, 列个标题先 1.模型 - 视图 - 控制器 2.两阶段创建 3.模板方法 4.动态创建 5.通知 ...

  • 07django快速预览(django模板)

    模板 1. 创建模板 2. 定义模板 3. 视图调用模板 4. 视图调用模板简写 模板 如何向请求者返回一个漂亮的...

网友评论

    本文标题:ThinkPHP 5: 创建控制器、模板,并调用

    本文链接:https://www.haomeiwen.com/subject/peigpxtx.html