基类app\common\controller\Backend
会默认渲染以下几个对象到视图中
//渲染站点配置
$this->assign('site', $site);
//渲染配置信息
$this->assign('config', $config);
//渲染权限对象
$this->assign('auth', $this->auth);
//渲染管理员对象
$this->assign('admin', Session::get('admin'));
我们可以在视图中使用{$site.name}
、{$config.modulename}
、{$auth.id}
、{$admin.username}
来获取我们所需要的数据
$site所支持的数据对应为application/extra/site.php
$config所支持的数据为
'site' => $site中的'name', 'cdnurl', 'version', 'timezone', 'languages'字段,
'upload' => application/extra/upload.php中数据,
'modulename' => 'admin',
'controllername' => 控制器名,
'actionname' => 方法名,
'jsname' => 控制器JS所加载的路径,
'moduleurl' => 后台module的链接,
'language' => 当前语言,
'fastadmin' => application/config.php中fastadmin的配置
$auth是一个对象,所对应的类是application/admin/library/Auth.php
$admin是一个当前管理员登录的session数据,存储有管理员的用户名、昵称、ID、头像等信息
如果我们需要在JS中使用以上数据,则使用
Config.site.name
Config.modulename
来获取相关的配置信息
如果我们需要自己在控制器中透传数据到JS中去,则可以使用控制器的assignconfig
方法来透传,使用如下
$this->assignconfig('demo', ['name'=>'名称']);
然后我们就可以在JS中使用
Config.demo.name
来获取对应的数据
控制器默认全部采用模板布局,因此我们的页面都会自动加上头部和尾部,如果我们有特殊的页面不需要采用模板布局,我们可以使用$this->view->engine->layout(false);
来关闭当前方法的模板布局。
如果我们需要使用自己的模板布局,在当前控制器定义protected $layout = '布局模板';
即可。
请注意如果采用了自己的模板布局或禁用了模板布局,将无法使用FastAdmin的JS按需加载
和Config
变量访问。
FastAdmin
的\app\common\controller\Api
和\app\common\controller\Frontend
基类控制器有启用全局过滤,过滤方法为trim,strip_tags,htmlspecialchars
,当使用ThinkPHP5
的方法获取请求的参数值时,会被过滤HTML和特殊字符,如有特殊情况下需要不过滤(如获取小程序请求的encryptedData
),可以使用$this->request->post("参数名", "默认值", null);
将第三个参数设置为null
即可获取原生请求的数据,特别注意当使用原生请求的数据时务必注意服务端的安全处理和安全输出。