控制器的定义:
- 控制器,即controller,控制器文件存放在controller目录下;
类名和文件名大小写保持一致,并采用驼峰式(首字母大写);
use think\Controller; class Index extends Controller;
继承控制器基类,可以更方便使用功能,但不是必须的;
- 系统也提供了其它方式,在不继承的情况下完成相同功能;
- 前面我们知道如果是一个单词,首字母大写,比如class Index;
- URL 访问时直接public/index即可;
- 那么如果创建的是双字母组合,比如class Helloworld;
- URL访问时必须为:public/hello_world;
如果你想原样的方式访问URL,则需要关闭配置文件中自动转换;
'url_convert' =>false;
此时,URL访问可以为:public/HelloWorld;
- 如果你想改变根命名空间app为其它,可以在根目录下创建.env文件;
然后写上配对的键值对即可,app_namespace=application;
渲染输出
ThinkPHP直接采用方法内return返回的方式直接就输出了;
使用json输出,直接采用json函数;
$data = array('a'=>1,'b'=>2,'c'=>3)
eturn json($data);
使用view输出模版,开启错误提示,可知道如何创建模版;
return view();
效果:默认输出方式为html格式输出,如果返回的是数组,则会报错;
可以更改配置文件里的默认输出类型,更改为json;
public function arr(){
$data = array('a'=>1,'b'=>2,'c'=>3);
return json($data);
}
一般来说,正常页面都是html输出,用于模版,AJAX默认为json;
- 如果继承了基类控制器,那么可以定义控制器初始化方法:initialize();
initialize()方法会在调用控制器方法之前执行;
protected function initialize(){
//parent: :initialize();
echo 'init';
}
initialize()方法不需要任何返回值,输出用PHP方式,return无效;