如何将fastAdmin模型验证和视图渲染改写为高效长尾词?

2026-04-02 03:321阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1276个文字,预计阅读时间需要6分钟。

如何将fastAdmin模型验证和视图渲染改写为高效长尾词?

1. 模型验证 1.1 前端表单验证: - 应用:后台模块 - 添加/编辑页面 - 路径:add. / edit. - 数据验证:data-rule=required - 标签样式:label class=control-label col-xs-12 col-sm-2 { } / div class=col-xs-12 col-sm-__

一、模型验证

1.前端表单验证:

应用->后台->模块->add.html/edit.html

application -> admin -> ceshi -> add.html

data-rule="required"

<label class="control-label col-xs-12 col-sm-2">{:__('Tfloat')}:</label> <div class="col-xs-12 col-sm-8"> <input id="c-Tfloat" data-rule="required" class="form-control" name="row[Tfloat]" type="number" value="0"> </div>

2.后端表单验证

在FastAdmin中默认的add/edit方法可以使用模型验证,验证器位于application/admin/validate/模型名.php中,模型验证默认是关闭的状态,如果需要启用,我们需要在当前控制器定义以下属性

protected $modelValidate = true; //是否开启Validate验证,默认是false关闭状态 protected $modelSceneValidate = true; //是否开启模型场景验证,默认是false关闭状态

当开启模型验证后,我们的添加和修改操作都会首先进行模型验证,验证不通过将会抛出错误信息,具体的模型验证规则可以参考TP5官方文档的模型验证规则:www.kancloud.cn/manual/thinkphp5/129355

场景验证可以参考TP5场景验证章节:www.kancloud.cn/manual/thinkphp5/129322

示例如下:

/** * 验证规则 */ protected $rule = [ "ceshiint" => "require", "ceshidatetime" => "require", ]; /** * 提示消息 */ protected $message = [ "ceshiint.require" => "ceshiint 为必填项", "ceshidatetime.require" => "ceshidatetime 为必填项" ]; /** * 验证场景 */ protected $scene = [ 'add' => ["ceshiint","ceshidatetime"], 'edit' => ["ceshiint"], ];

二、视图渲染

基类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

来获取对应的数据

例1:控制器ceshi.php中,新加渲染对象,然后在视图中获取

控制器的初始化方法中,添加如下代码:

$this->assign('ceshi123', "cs123456");

如何将fastAdmin模型验证和视图渲染改写为高效长尾词?

public function _initialize() { parent::_initialize(); $this->model = new \app\admin\model\Ceshi; $this->view->assign("ceshienumList", $this->model->getCeshienumList()); $this->view->assign("ceshisetList", $this->model->getCeshisetList()); $this->view->assign("statusList", $this->model->getStatusList()); $this->assign('ceshi123', "cs123456"); }

在视图index.html中,通过以下方式,引用数据:

{$ceshi123}

<div class="panel panel-default panel-intro"> <div class="panel-heading"> {:build_heading(null,FALSE)} {$ceshi123} <ul class="nav nav-tabs" data-field="status"> <li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li> {foreach name="statusList" item="vo"} <li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li> {/foreach} </ul> </div>

例2:在控制器中,使用assignconfig方法来透传数据,然后使用js引用数据,方法如下:

在ceshi.php控制器中:

$this->assignconfig('demo', ['usertoken'=>$this->auth->token,'userid'=>$this->auth->id]);

在js中,使用 Config.demo 方法引用数据


本文共计1276个文字,预计阅读时间需要6分钟。

如何将fastAdmin模型验证和视图渲染改写为高效长尾词?

1. 模型验证 1.1 前端表单验证: - 应用:后台模块 - 添加/编辑页面 - 路径:add. / edit. - 数据验证:data-rule=required - 标签样式:label class=control-label col-xs-12 col-sm-2 { } / div class=col-xs-12 col-sm-__

一、模型验证

1.前端表单验证:

应用->后台->模块->add.html/edit.html

application -> admin -> ceshi -> add.html

data-rule="required"

<label class="control-label col-xs-12 col-sm-2">{:__('Tfloat')}:</label> <div class="col-xs-12 col-sm-8"> <input id="c-Tfloat" data-rule="required" class="form-control" name="row[Tfloat]" type="number" value="0"> </div>

2.后端表单验证

在FastAdmin中默认的add/edit方法可以使用模型验证,验证器位于application/admin/validate/模型名.php中,模型验证默认是关闭的状态,如果需要启用,我们需要在当前控制器定义以下属性

protected $modelValidate = true; //是否开启Validate验证,默认是false关闭状态 protected $modelSceneValidate = true; //是否开启模型场景验证,默认是false关闭状态

当开启模型验证后,我们的添加和修改操作都会首先进行模型验证,验证不通过将会抛出错误信息,具体的模型验证规则可以参考TP5官方文档的模型验证规则:www.kancloud.cn/manual/thinkphp5/129355

场景验证可以参考TP5场景验证章节:www.kancloud.cn/manual/thinkphp5/129322

示例如下:

/** * 验证规则 */ protected $rule = [ "ceshiint" => "require", "ceshidatetime" => "require", ]; /** * 提示消息 */ protected $message = [ "ceshiint.require" => "ceshiint 为必填项", "ceshidatetime.require" => "ceshidatetime 为必填项" ]; /** * 验证场景 */ protected $scene = [ 'add' => ["ceshiint","ceshidatetime"], 'edit' => ["ceshiint"], ];

二、视图渲染

基类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

来获取对应的数据

例1:控制器ceshi.php中,新加渲染对象,然后在视图中获取

控制器的初始化方法中,添加如下代码:

$this->assign('ceshi123', "cs123456");

如何将fastAdmin模型验证和视图渲染改写为高效长尾词?

public function _initialize() { parent::_initialize(); $this->model = new \app\admin\model\Ceshi; $this->view->assign("ceshienumList", $this->model->getCeshienumList()); $this->view->assign("ceshisetList", $this->model->getCeshisetList()); $this->view->assign("statusList", $this->model->getStatusList()); $this->assign('ceshi123', "cs123456"); }

在视图index.html中,通过以下方式,引用数据:

{$ceshi123}

<div class="panel panel-default panel-intro"> <div class="panel-heading"> {:build_heading(null,FALSE)} {$ceshi123} <ul class="nav nav-tabs" data-field="status"> <li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li> {foreach name="statusList" item="vo"} <li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li> {/foreach} </ul> </div>

例2:在控制器中,使用assignconfig方法来透传数据,然后使用js引用数据,方法如下:

在ceshi.php控制器中:

$this->assignconfig('demo', ['usertoken'=>$this->auth->token,'userid'=>$this->auth->id]);

在js中,使用 Config.demo 方法引用数据