我是 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 站点的数据库中。
谢谢你,以防万一,让我知道;需要进一步澄清..
蓝山帝景
墨色风雨