我是 Drupal 8 的新手,我正在为我的公司做一个项目,请帮助解决这个问题。我们在 ionic 应用程序中进行了注册,我们希望将数据发送到 Drupal 8 站点 MySQL DB。问题是,当我们在 Drupal 8 中使用多个注册模块创建注册表时,会为表单中的每个字段创建一个单独的表,例如数据库中的用户名字段有自己的表。我们如何将应用程序中的数据插入 Drupal DB 以允许用户从应用程序或网站注册?我们在 Drupal 8 中使用多注册模块。我曾尝试使用应用程序内浏览器 ( https://ionicframework.com/docs/native/in-app-browser ) 将表单嵌入我们的应用程序中,但它显示了我们不想要的带有页眉和页脚的整个页面.我还尝试将数据作为 JSON 文件发送,并使用 PHP 和 MySQL 命令将数据插入表中,但这是一项非常漫长而艰巨的任务。let headers: any = new HttpHeaders({ 'Content-Type': 'application/json' }), options: any = { "key": "create", 'id': obj.id, 'fullName': obj.fullName, 'email': obj.email, 'idNumber': obj.idNumber, 'gender': obj.gender, 'age': obj.age, 'phone': obj.phone, 'status': obj.status, 'qualifications': obj.qualifications, 'skills': obj.skills[0], 'city': obj.city, 'terms': obj.terms, },this.http.post(url2, JSON.stringify(options), headers) .subscribe((data: any) => { console.log('successfully added'); }, (error: any) => { console.log('Something went wrong!', error); });并用于插入数据// Retrieve the posted data $json = file_get_contents('php://input'); $obj = json_decode($json); $key = strip_tags($obj->key); switch($key) { case "createTest": $field_mdynt_alskn_target_id = filter_var($obj->field_mdynt_alskn_target_id, FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW); $field_username_value = filter_var($obj->field_altk_al_value, FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW); try { $sql = "INSERT INTO user_name(field_username_value) VALUES(:field_username_value)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':field_mdynt_alskn_target_id', $field_mdynt_alskn_target_id, PDO::PARAM_STR); $stmt->execute();这里的问题是每个字段在数据库中都有自己的表,例如用户名字段具有表 user_name 并且表单中的所有字段都相同,我对所有字段执行相同的操作,我认为这不是正确的方法。有没有一种更快更有效的方法将我们 ionic 4 应用程序注册表中的数据插入到我们 Drupal 站点的数据库中。谢谢你,以防万一,让我知道;需要进一步澄清..
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
首先修复数据库架构,每个表单字段的表不会是高效和可扩展的。
我怀疑是否有任何 Drupal 扩展会这样做,如果确实如此,它应该被踢出 drupal 世界。
您可以从这张图片中看到我们为用户准备了多少张表
墨色风雨
TA贡献1853条经验 获得超6个赞
我要研究的选项是制作一个具有剥离设计的页面模板,您可以按照最初尝试的方式进行嵌入。
如果您不知道如何让 Drupal 为单个页面提供自定义模板,那么我会编写一些 JavaScript 或 CSS 来删除/隐藏所有我不想在嵌入到应用程序。
您可以添加查询字符串参数,或制作带有表单的第二页,以便您可以检测何时需要更改设计。
正如您已经发现的那样,尝试手动进行操作很复杂,除非我已经是该特定领域的专家,否则我不想承担这项任务。
不知道你有没有考虑过完整的用户体验?用户注册后会发生什么?您最终会得到一个完整的表格,但应用程序不会知道它已注册,因为这将在服务器上发生。我认为 JWT 将是开始研究的方向,但我没有可以建议的简单解决方案。
- 2 回答
- 0 关注
- 183 浏览
添加回答
举报
0/150
提交
取消