yellow-three / voyager-forms
Ahoy! - 将表单集成到 Voyager 的包
Requires
- guzzlehttp/guzzle: ~6.0|~7.0
- tcg/voyager: ^1.5
Requires (Dev)
- phpunit/phpunit: ^8.5
README
缺失的 Laravel 管理员表单模块
此Laravel包为Voyager项目添加了动态表单创建和短代码插入。
- 创建和管理表单及其字段(添加字段、拖放排序等)
- 使用简单的短代码在前端输出表单(
{!! forms(<FORM_ID>) !!}
) - 前端上的每个表单输出都可以使用自定义布局进行覆盖
- 所有提交都通过可覆盖的 HTML 邮件模板发送电子邮件
- 所有提交都备份到数据库中,在 Voyager 管理员 > 表单 > 咨询下可访问
由Pivotal Agency开发。
先决条件
- 已安装 Node & NPM
- 已安装 Composer
- 安装 Laravel
- 安装 Voyager
安装
# 1. Require this Package in your fresh Laravel/Voyager project composer require yellow-three/voyager-forms # 2. Run the Installer composer dump-autoload && php artisan voyager-forms:install # 3. Configure to/from addresses -> Navigate to Admin -> Settings -> 'Forms' tab -> Adjust values -> Note: If you leave `Default Enquiry To Email` blank and set no email in the form setting, email will not be sent # 4. Configure "MAIL" environment variables # 5. (optional) Add Google invisible reCAPTCHA -> Navigate to Admin -> Settings -> 'Admin' tab -> Insert Google reCATPCHA keys
显示表单
您可以在前端以任何类型的输出轻松显示创建的表单 - 我们使用短代码来渲染表单,因此请将 {!! forms(1) !!}
添加到页面/帖子中,以查看默认的联系人表单。
表单钩子
您可能还希望在表单提交时(但在提交保存到数据库之前 - 例如,以便您可以执行自定义验证)包含自定义逻辑和功能。这可以通过一个 表单钩子 块来完成 - 简单指定您的控制器命名空间路径和您想要调用的方法,Voyager 表单模块将在提交时自动执行它。例如
YellowThree\AwesomeModule\Somewhere\ClassName::anExampleHey('hello world')
注意,在上面的示例中,实际方法的第一个参数是提交数据,第二个参数是'hello world'。
自定义表单输出
此模块以基本结构在前端输出表单。但是,您很容易构建自己的表单布局。
完全自定义布局
- 在
views/vendor/voyager-forms/layouts
中创建一个新的 blade 模板 - 在 Voyager 管理员中编辑表单并选择您创建的新布局
要获得完全自定义的输出,您可能需要定义 <form>
html,包括每个表单字段。
覆盖字段
您还可以覆盖 views/vendor/voyager-forms/forms/render.blade.php
以更改表单字段的外观。
自定义电子邮件模板
本模块在每次提交时发送一封外观通用的电子邮件。然而,您很容易构建自己的电子邮件模板。
- 在
views/vendor/voyager-forms/email-templates
中创建一个新的 blade 模板(您也可以简单地覆盖同一位置的default.blade.php
) - 在 Voyager 管理员中编辑表单并选择合适的电子邮件模板
使用输入类型
大多数输入类型相当直观。两个非标准字段是提交和分组字段。以下是使用它们的方法
分组
您可以通过使用两个分组字段来对表单字段进行分组。第一个分组字段的标签将是您分组字段的标题。您可以为分组字段标题 span 和包含字段的分组字段 div 添加自定义 CSS 类,就像其他表单元素一样。默认的相应类是 .groupedInput 和 .groupedInputTitle。由于包不包含任何 CSS,我们鼓励您在您的应用程序中为这两个类进行样式设计。
您需要在表单构建器中创建一个 '分组' 字段,既在您想要分组字段开始的地方,也在结束的地方。如果您缺少一个关闭的分组字段,它将在表单末尾自动关闭。
提交
您可以使用提交输入字段自定义表单的提交按钮文本和 CSS。您应该在表单构建器的末尾放置此内容。