Điểm:0

Làm cách nào để tôi có được người gửi biểu mẫu web?

lá cờ in

Tôi đang phát triển trình xử lý biểu mẫu web đầu tiên của mình và tôi cần truy cập trình gửi biểu mẫu web trong bàiLưu phương pháp.

Tôi biết tôi có thể lấy ID gửi biểu mẫu web bằng $webform_submission->id(), nhưng tôi không thể tìm ra cách tải người gửi. Theo như tôi biết, $webform_submission->getWebform()->getOwner() KHÔNG phải là thứ tôi đang tìm kiếm, vì nó cho tôi biết chủ sở hữu của biểu mẫu chứ không phải "chủ sở hữu" của nội dung gửi. tôi đã tìm thấy Làm cách nào để tìm ra trường nào có sẵn? nhưng nó không chi tiết như tôi cần.

Lý do tại sao tôi cần biết người gửi là như sau:

  • Tôi muốn phát triển một số loại "ví" cho trang web của mình. Vì mục đích đó, tôi đã cài đặt mô-đun "hồ sơ" và tôi đã tạo một loại hồ sơ "ví" với một trường duy nhất: "Số dư". Vì vậy, mọi người dùng sẽ có một "số dư".

  • Tôi cũng đã tạo một biểu mẫu web có tên "Giao dịch mới" nơi người dùng sẽ gửi tiền gửi và/hoặc rút tiền. Trong số các trường khác, biểu mẫu web này có trường "trạng thái" và trường "số tiền".

  • Khi người dùng gửi "giao dịch mới", biểu mẫu web gửi được lưu trữ với trạng thái "XÁC MINH" và trình xử lý email sẽ gửi email đến quản trị viên của trang web (không có WebformHandler nào liên quan ở đây).

  • Quản trị viên nhận email và xem xét việc gửi/rút tiền. Nếu OK, quản trị viên cập nhật trạng thái bài nộp thành "ACCEPTED". Chính tại thời điểm đó (khi quản trị viên cập nhật nội dung gửi) khi WebformHandler thực hiện phép thuật của mình. Nó cộng/trừ số tiền vào số dư của hồ sơ ví thuộc về người dùng đã gửi. Đây là lý do tại sao tôi cần biết người dùng đã tạo biểu mẫu web gửi. Tôi cần thực hiện các thao tác sau để truy xuất hồ sơ ví của người dùng:

    $wallet_profiles = \Drupal::entityTypeManager()->getStorage("profile")
      ->loadByProperties(['uid' => $user->id(),
        'type' => 'wallet_profile',
        'is_default' => 1,
      ]);
    

Nếu bất cứ ai biết một cách thanh lịch hơn để đạt được khái niệm "ví" này, xin vui lòng cho tôi biết.

Điểm:1
lá cờ in

OK. I think I can answer myself: $webform_submission->getOwnerId() is what I need.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.