描述性统计与探索型数据分析(下)
描述性统计与探索型数据分析(下)
控制器定义
控制器文件通常放在controller下面,类名和文件名保持大小写一致,并采用驼峰命名(首字母大写)。
一个典型的(多应用)控制器类定义如下:<?php
namespace app\index\controller;
class Index
{
public function index()
{
return 'index';
}
}
控制器类文件的实际位置是app\index\controller\Index.php
访问URL地址是(假设没有定义路由的情况下)http://localhost/index.php/index
如果你的控制器是HelloWorld,并且定义如下:<?php
namespace app\index\controller;
class HelloWorld
{
public function index()
{
return 'hello,world!';
}
}
控制器类文件的实际位置是app\index\controller\HelloWorld.php
访问URL地址是(假设没有定义路由的情况下)http://localhost/index.php/hello_world
如果你期望通过http://localhost/index.php/HelloWorld
可以访问,那么必须在route.php文件中关闭URL的自动转换设置// 是否自动转换URL中的控制器和操作名
'url_convert' => false,
单应用模式
如果使用的是单应用模式,那么控制器的命名空间中不需要应用名了,类的定义就变成了<?php
namespace app\controller;
class Index
{
public function index()
{
return 'index';
}
}
控制器类文件的实际位置则变成app\controller\Index.php
渲染输出
默认情况下,控制器的输出全部采用return的方式,无需进行任何的手动输出,系统会自动完成渲染内容的输出。
下面都是有效的输出方式:<?php
namespace app\index\controller;
class Index
{
public function hello()
{
// 输出hello,world!
return 'hello,world!';
}
public function json()
{
// 输出JSON
return json($data);
}
public function read()
{
// 渲染默认模板输出
return view();
}
}
控制器一般不需要任何输出,直接return即可。并且控制器在json请求会自动转换为json格式输出。
不要在控制器中使用包括die、exit在内的中断代码。如果你需要调试并中止执行,可以使用系统提供的halt助手函数。halt('输出测试');
多级控制器
支持任意层次级别的控制器,并且支持路由,例如:<?php
namespace app\index\controller\user;
class Blog
{
public function index()
{
return 'index';
}
}
该控制器类的文件位置为:app/index/controller/user/Blog.php
访问地址可以使用http://serverName/index.php/user.blog/index
由于URL访问不能访问默认的多级控制器(可能会把多级控制器名误识别为URL后缀),因此建议所有的多级控制器都通过路由定义后访问,如果要在路由定义中使用多级控制器,可以使用:Route::get('user/blog','user.blog/index');
任务
?不会了怎么办