企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
注:若无特别说明,无参数代表参数列表为空,列出有多少个参数就是多少个参数(一般都为一个);返回值指的是插件所指定方法/函数的返回值。使用${}包括的部分为可变量,一般会给说明。 [TOC] # 前台 # 后台 ## settings 参数:无 返回值类型:array 说明: 该钩子定义设置标题以及设置表单。格式如下: ```php [ 'title'=>'测试插件设置', // 标题 'form'=>[ // 表单项 'test'=>['label'=>'测试项','type'=>'text','require'=>true] ] ] ``` 标题说明:为了配合国际化,您可以在标题部分自行定义使用语言文件(参见Laravel[扩展包开发](https://learnku.com/docs/laravel/6.x/packages/5167#translations)文档)。 表单项说明:键名为储存到options表的key,为了不与其他插件或系统设置冲突,系统会自动将键名前面加上插件别名,例如`demo_test`;label为显示到界面上的标签;type为表单类型,理论上支持Laravel-admin的所有表单类型;其他的设置与Laravel-admin的表单组件有关,所有支持的方法都可以使用,如果不需要填入参数可以设置键值为空数组,如果需要多个参数,键值为无键名数组,顺序为参数的顺序。 ## client_menu 参数:无 返回值类型:array 说明:该钩子增加客户区的菜单项,即通过返回值设置菜单项。格式如下: ~~~ return [ '关于NewIDC' => ['type' => 'url', 'url' => 'https://github.com/moqiaoduo'], // 固定url '测试页面' => ['type' => 'plugin_page', 'page' => 'test'], // 插件页面 ]; ~~~ 该钩子可以指定插件页面或固定url。 ## plugin_page 参数:无 返回值类型:array 说明:自定义插件页面,示例: ``` return [ 'migrate'=>function(){ return view('test::index') } ]; ``` 通过上一个钩子的导航,可以访问到该插件的migrate页面,访问页面时调用了匿名函数。其原理是,通过调用该钩子注册相应的GET路由,并将对应键值作为action。 ## plugin_action 参数:Request对象 返回值类型:array 说明:定义action的数组格式: ``` return [ 'migrate' => function($request) { // todo }, 'save' => [$this,'save'], ]; ``` 也就是说,键名为action名称,键值则为action所做操作。原理基本同上,但注册的是POST路由。 上面的插件页面并不建议进行数据的存储操作,所以建议注册该钩子实现。普通的表单post和ajax均支持,需不需要返回值自行决定。URL的格式:http://localhost/plugin/{plugin}/{action} ,Method:Post。也可以通过 **route('${plugin}_${action}')** 这样的方式获取URL。其中**${plugin}**代表插件别名,**${action}**则代表上面的action。 注意:Laravel需要在post时传入一个_token,可通过 **csrf_token()** 来获取,也可以通过 **csrf_field()** 获取隐藏input,否则提交后会提示419错误。