menu

控制器

创建控制器

项目根目录下运行命令:

php cp ctl:web -c=hello

类名称 hello 请使用小驼峰命名法,首字母会自动转大写

(ctl:web) Make class Hello done!
(ctl:web) Make class HelloView done!
(ctl:web) Make template hello/index done!

一共生成3个文件,分别是控制器、视图控制器和模板

获取参数

在控制器中获取参数

/**
 * 默认方法
 *
 * @throws
 */
function index()
{
    $name = $this->input('name')->val();

    print_r($name);
}

通过 $this->input('参数名')->val() 获取参数,更多过滤方法请查看过滤方法相关文档。

极简风格下(app\web\init.phpurl[type] = 1$this->input('参数名') 无法正确获取到参数值, 需要添加@cp_params注解为参数命名

控制器内跳转

在web控制器内跳转, 不传参将跳转到首页

$this->to('控制器:方法')

重定向

url 参数必须以 httphttps 开头

$this->redirect('url')

保存登陆状态

$this->auth() 发送一个加密cookie

/**
 * 系统中用到的各种密钥
 * uri 加密URL
 * auth 加密cookie
 */
'encrypt' => [
    'uri' => '*&9wru&!@#%#&',
    'auth' => '!@#cr@!$!21p#$%^'
],

一般用来保存用户登陆信息,为了用户数据安全,请修改默认密钥

请求类型判断

判断http请求类型

$this->isPost(), $this->isGet(), $this->isAjax(), $this->isCli()

获取当前控制器

$this->controller 获取当前控制器类名

获取当前方法名

$this->action 获取当前方法名

魔术方法

访问类中不存在的方法时,执行 __call() 方法

function __call($action, $args)
{
    print_r($action);
    print_r($args);
}

适用多分类筛选等场景