他们是一种集成 Drupal-8 和 ionic4 以进行用户注册和登录的方法吗?

我是 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 站点的数据库中。


谢谢你,以防万一,让我知道;需要进一步澄清..


元芳怎么了
浏览 184回答 2
2回答

蓝山帝景

首先修复数据库架构,每个表单字段的表不会是高效和可扩展的。我怀疑是否有任何 Drupal 扩展会这样做,如果确实如此,它应该被踢出 drupal 世界。您可以从这张图片中看到我们为用户准备了多少张表

墨色风雨

我要研究的选项是制作一个具有剥离设计的页面模板,您可以按照最初尝试的方式进行嵌入。如果您不知道如何让 Drupal 为单个页面提供自定义模板,那么我会编写一些 JavaScript 或 CSS 来删除/隐藏所有我不想在嵌入到应用程序。您可以添加查询字符串参数,或制作带有表单的第二页,以便您可以检测何时需要更改设计。正如您已经发现的那样,尝试手动进行操作很复杂,除非我已经是该特定领域的专家,否则我不想承担这项任务。不知道你有没有考虑过完整的用户体验?用户注册后会发生什么?您最终会得到一个完整的表格,但应用程序不会知道它已注册,因为这将在服务器上发生。我认为 JWT 将是开始研究的方向,但我没有可以建议的简单解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP