🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们可以在app/explore/目录下面找到一个 main.php 文件,这就是WeCenter默认的explore控制器文件。 控制器类的命名方式是:控制器名 或者是main,名称要与这个php名相同。如果是 控制器文件的命名方式是:类名.php(类文件后缀) 首页页面其实就是访问的explore模块下面的main控制器类的index操作方法 我们修改默认的index操作方法如下: ~~~ class main extends AWS_CONTROLLER { public function index_action(){ echo 'hello world'; } } ~~~ 再次运行应用入口文件,浏览器会显示:hello,world!。 我们再来看下控制器类, class main extends AWS_CONTROLLER 每一个控制器使用,都需要继承AWS_CONTROLLER,才能进行操作,否则,这个控制器不能被实例化使用。 在控制器里面,如果有需要初始化执行的动作,则需要把需要预先执行的代码放在一个setup()方法中。如: ~~~ public function setup() { if (is_mobile() AND !$_GET['ignore_ua_check']) { switch ($_GET['app']) { default: HTTP::redirect('/m/'); break; } } } ~~~ 这个预先执行的意思就是如果是mobile(手机端)访问,并且没有设置手机端看电脑版,则跳转到手机端指定页面。 在控制器里,可以规定该控制器是登陆后访问还是不需要登陆就能访问,则需要添加一个get_access_rule()方法。如: ~~~ public function get_access_rule() { $rule_action['rule_type'] = 'white'; //'black';黑名单,黑名单中的检查 'white'白名单,白名单以外的检查 if ($this->user_info['permission']['visit_explore'] AND $this->user_info['permission']['visit_site']) { $rule_action['actions'][] = 'index'; } return $rule_action; } ~~~ 这里定义了访问页面的权限,` $rule_action['rule_type'] = "white"; `//'black'黑名单,黑名单中的检查 'white'白名单,白名单以外的检查 设置rule_type为white的时候,在`$rule_action['actions']`里的方法可以在不登陆的时候就能访问,以外的方法,则需要登陆才能访问。 设置rule_type为black的时候,在`$rule_action['actions']`里的方法可以在登陆的时候才能访问,以外的方法,则直接可以访问。