此控制继承了表单快速生成类FormBuilder,顾名思义其作用是为各应用管理后台的控制器提供表单快速生成工具。其结构如下:
namespace app\common\controller; use app\admin\controller\FormBuilder; use think\facade\View; class AddonFormBuilder extends FormBuilder { protected $_view_path = ''; //视图根目录,因为各应用所在路径不同,因此需作为变量设置 public function initialize() { parent::initialize(); // TODO: Change the autogenerated stub $this->_template = 'builder/form'; } /** * 设置模版目录 * @param string $view_path * @return $this * @author: fudaoji<fdj@kuryun.cn> */ public function setViewPath($view_path = ''){} /** * 重写父类的show方法 * @param array $assign * @param string $view * @return mixed * @Author Doogie<461960962@qq.com> */ public function show($assign = [], $view = '') {} }
这边举个此类使用例子,假如我在应用demo下使用快速表单,那么我的代码应该如下:
$builder = new \app\common\controller\AddonFormBuilder(); $builder->setViewPath(ADDON_PATH . session('addonName').'/admin/view/') ->addFormItem(field, type, title, tip, options, extra_attr);
对比FormBuilder的使用,可以发现就是多了setViewPath的调用而已,因此使用也是及其简单而方便。
当然,如果开发者开发自己的应用管理后台时,不想使用框架提供的默认视图主题,那么开发者可不用关注此类。