我是 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 關注
- 220 瀏覽
添加回答
舉報
0/150
提交
取消
