您的位置:首页 > 文旅 > 旅游 > 申请完域名如何建网站_郑州市建设集团_seo关键词分析_一个新手如何推销产品

申请完域名如何建网站_郑州市建设集团_seo关键词分析_一个新手如何推销产品

2025/5/1 17:48:55 来源:https://blog.csdn.net/2301_80678122/article/details/147431939  浏览:    关键词:申请完域名如何建网站_郑州市建设集团_seo关键词分析_一个新手如何推销产品
申请完域名如何建网站_郑州市建设集团_seo关键词分析_一个新手如何推销产品

一.引擎驱动

1. MVC中,M(模型)和C(控制器)是前面我们所了解的内容,而V(视图)就是页面;

2. TP6.0默认不自带TT模版引擎,它作为一个可选的扩展给开发人员安装;

3. 也就是说,并不一定非要使用模板引擎的语法规则来开发V(视图)部分;

4. 如果不用模版引擎,可以在控制器通过require()方法引入PHP文件混编即可;

那么有很多数据,怎么和前端通信呢?

解决:

============================================

也可以通过依赖注入:

5. 如果要使用模版引擎,先创建一个用于测试模板引擎的控制器:Show.php;

6. 写入模版引擎的调用语法,来判断,是否已经安装了模板引擎扩展;

return View::fetch('index'); //出现缺少驱动的错误

7. 然后,安装如下驱动后,再刷新页面即可;

composer require topthink/think-view

二.赋值变量

1. 在控制器区域,通过assign()设置一个向模版提供变量的赋值操作;

View::assign('name', 'Mr.Lee');

2. 而模版区域,只需要通过{$name}的语法即可获取到控制器设置的值; {$name}

3. assign()方法,支持通过数组的方式,传递模版变量;

View::assign(['name' => 'Mr.Lee','age' => 100]);

4. 也可以直接通过fetch()方法的第二参数,直接用数组传递模版变量;

return View::fetch('index', ['name' => 'Mr.Lee','age' => 100]);

5. 助手函数view(),和View::fetch()一样;

return view('index', [...]);

6. 可以使用filter()方法,对所有模版的变量进行过滤操作;

return View::filter(function ($content) {return strtoupper($content);})->fetch('index');return view('index')->filter(function ($content) {return strtoupper($content);});

这个content指的是把所有变量传递过去,也就是

View::assign([
 'name' => 'Mr.Lee',
 'age' => 100
 ]);

======================================================================

模板赋值

模板中的变量(除了一些系统变量外)必须先进行模板赋值后才能使用,可以使用assign方法进行全局模板变量赋值。

namespace app\controller;use think\facade\View;class Index
{public function index(){// 模板变量赋值View::assign('name','ThinkPHP');View::assign('email','thinkphp@qq.com');// 或者批量赋值View::assign(['name'  => 'ThinkPHP','email' => 'thinkphp@qq.com']);// 模板输出return View::fetch('index');}
}

assign方法赋值属于全局变量赋值,如果你需要单次赋值的话,可以直接在fetch方法中传入。

namespace app\controller;use think\facade\View;class Index
{public function index(){// 模板输出并变量赋值return View::fetch('index', ['name'  => 'ThinkPHP','email' => 'thinkphp@qq.com']);}
}

助手函数

如果使用view助手函数渲染输出的话,可以使用下面的方法进行模板变量赋值:

return view('index', ['name'  => 'ThinkPHP','email' => 'thinkphp@qq.com'
]);

助手函数的变量赋值也是当次模板渲染有效

一.模版配置

1. 默认情况下,config/view.php就是默认模版引擎的配置文件;

2. 内部的配置注释写的非常清楚了,一般情况下,不需要任何改动;

二.模版渲染

1. 除了在配置文件修改外,还可以在控制器端动态修改模版配置;

View::config(['view_dir_name' => 'view2']);

config里面的放置view_dir_name,更改view2目录

那这样子就是动态修改

2. 默认情况下,调用的是本控制器的模版文件,也可以调用其它控制器的模版文件;

return View::fetch('Address/index');

使用fetch指定控制器的话:

就会跳到指定的控制器目录

3. 如果你是多模块(多应用)模式下,也可以实现跨模块调用模版文件;

return View::fetch('admin@User/index');

4. 如果直接在view 根目录下的模版文件,用一个斜杠来设定即可调用;

return View::fetch('/index');

5. 如果想调用public公共目录的模版文件,用../public后面跟着URL即可;

return View::fetch('../public/test/test);

6. 这种做法的调用方式,和模版引擎调用一样,只不过通信的数据获取方式有差异;

return View::engine('php')->fetch('index');

7. 第二种原生PHP执行方式,在return之前设置的变量或者模版变量均无效;

8. 而是把所有的要传递的变量,通过fetch()的第二个参数传递;

return View::engine('php')->fetch('index', ['name' => 'Mr.Lee','age' => 100]);

使用原生的php,只能把变量放置在fetch第二个参数之内,才能传递。

如果是使用原生,那么就得改成php后缀,index.html=index.php

一.变量输出

1. 当程序运行的时候,会在runtime/temp目录下生成一个编译文件;

2. 默认情况下,输出的模版变量会自动进行过滤,过滤函数默认如下:

<?php echo htmlentities($name); ?>

3. 如果传递的值是数组,在模版区域可以使用$data.name这种形式输出;

$arr = ['name'=>'Mr.Lee', 'age'=>100];return View::fetch('output', ['arr' => $arr]);{$arr.name}--{$arr.age}//模版数组变量输出
<?php echo htmlentities($arr['name']); ?>//编译文件

编译文件和php的原生代码是一致的。

4. 如果传递的值是对象,那么编译文件也会自动相应的对应输出方式;

public $name = 'Mr.Lee';public $age = 'age';const PI = 3.14;return View::fetch('output', ['obj' => $this,]);{$obj->name}--{$obj->age}--{$obj->fn()}--{$obj::PI}<?php echo htmlentities($obj->name); ?>//编译文件

注意:静态调用方法得有start。也就是两个冒号::得用静态或者常量

二.其它输出

1. 如果输出的变量没有值,可以直接设置默认值代替;

{$data.name|default='没有姓名'}

2. 系统变量有:$_SERVER、$_ENV、$_GET、$_POST、$_REQUEST、$_SESSION和$_COOKIE;

3. 对于注入Request对象,也可以直接在模版输出;

{$Request.get.id}{$Request.param.name}{$Request.host}

4. 常量、配置信息等都可以通过$Think输出;

{$Think.const.PHP_VERSION}{$Think.PHP_VERSION}{$Think.config.app.app_host}{$Think.config.session.name}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com