Điểm:0

lưu trữ người dùng đã nhập id thư vào bảng riêng

lá cờ de

Có yêu cầu phát triển mô-đun tùy chỉnh drupal 9 để lấy id thư từ biểu mẫu đăng ký người dùng và lưu trữ bảng riêng. Tôi đã thử dùng hàm hook_user_presave để lấy id thư nhưng không lấy được. Bằng cách này chia sẻ mã

chức năng save_mail_user_presave(UserInterface $user)
 {

     cố gắng{
                $conn = Cơ sở dữ liệu::getConnection();
                $fields["mail"] = $user->get('mail')->value;
            $conn->insert('save_email')
                           ->trường($trường)->execute();
                  \Drupal::messenger()->addMessage($this->t(' Cảm ơn bạn!! Của bạn>

        } bắt(Ngoại lệ $ex){
                \Drupal::logger('save_email')->error($ex->getMessage());
        }

}

Bất cứ ai giúp tôi tìm ra vấn đề

apaderno avatar
lá cờ us
Câu hỏi sẽ giải thích ý nghĩa của *không thể hiểu được*. Ý của bạn là, với mã bạn đang sử dụng, `$fields["mail"]` không chứa email của người dùng? Bạn có nhận được thông báo lỗi nào không? Cái nào?
apaderno avatar
lá cờ us
Như lưu ý bên lề, có hai lỗi trong mã được hiển thị: `$this` không thể được sử dụng bên ngoài một phương thức lớp, ví dụ như bên trong một hàm; chuỗi ký tự được chuyển đến `$this->t()` không có dấu phân cách chuỗi cuối cùng. Xác minh mã bạn đang sử dụng là mã PHP chính xác và đảm bảo rằng bạn đã sao chép chính xác mã trong câu hỏi.
lá cờ de
Có, không thể nhận địa chỉ email trên .$fields["mail "] Empty. Không nhận được bất kỳ lỗi nào. Cảm ơn
apaderno avatar
lá cờ us
Xem bình luận thứ hai của tôi. Nếu bạn đang thực sự sử dụng mã đó, nó sẽ không hoạt động.
Điểm:0
lá cờ cn

Drupal 9 đã lưu trữ địa chỉ email khi đăng ký trong trong đó cột của user_field_data cái bàn. Đây là "địa chỉ email từ mẫu đăng ký người dùng"; nó khác với địa chỉ email tài khoản của người dùng, được lưu trữ trong email cột của cùng một bảng.

Vì vậy, không cần mô-đun tùy chỉnh cho việc này; bạn có thể dùng cột mà Drupal đã cung cấp.

lá cờ de
Cảm ơn Patrick, tôi muốn nắm bắt địa chỉ email ngay cả ở các giá trị biểu mẫu không hợp lệ. bạn có thể đề xuất cách giải quyết vấn đề này không
apaderno avatar
lá cờ us
@srini Trong trường hợp đó, bạn không thể sử dụng `hook_ENTITY_TYPE_presave()` vì hook đó được gọi khi các giá trị được gửi đã vượt qua xác thực. Không rõ tại sao bạn lại lưu trữ địa chỉ email khi biểu mẫu không vượt qua xác thực. Trong trường hợp đó, cuối cùng bạn sẽ lưu trữ nhiều email cho một người dùng, thậm chí là một chuỗi trống.
lá cờ de
Muốn nắm bắt cho cùng một mục đích phân tích. Có cách nào để nắm bắt điều đó. Nếu chức năng lưu trước không hoạt động có nghĩa là Vui lòng đề xuất

Đă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.