Tôi đã cố gắng xác thực dữ liệu Mô hình người dùng của mình và tôi đã gặp phải sự cố này.Làm thế nào để chỉ sử dụng một bộ xác thực nhất định để xác thực dữ liệu trong Bánh PHP?
Giả sử tôi có quy tắc xác nhận sau, lưu trữ trong biến $ validate:
var $validate=array(
"username" => array(
"usernameCheckForRegister" => array(
"rule" => ...,
"message" => ...
),
"usernameCheckForLogin" => array(
"rule" => ...,
"message" => ...
)
),
//rules for other fields
);
Trong bộ điều khiển UsersController, tôi có hai hành động: đăng ký() và đăng nhập(). Vấn đề là, làm cách nào để xác thực trường tên người dùng trong hành động register() bằng cách sử dụng CHỈ quy tắc usernameCheckForRegister và làm cách nào để xác thực trường tên người dùng trong hành động login(), sử dụng quy tắc khác, usernameCheckForLogin? Có bất kỳ hành vi hoặc phương pháp nào trong CakePHP cho phép tôi chọn bộ quy tắc nào áp dụng cho trường biểu mẫu khi xác thực không?
Cảm ơn bạn trước sự giúp đỡ của bạn!
Câu hỏi của tôi là lý do bạn muốn xác thực tên người dùng khi đăng nhập? Khi đăng nhập, câu hỏi duy nhất cần được trả lời là "tên người dùng có mật khẩu này có tồn tại trong cơ sở dữ liệu không?" Nó không quan trọng cho dù tên người dùng là hợp lệ hay không. Nếu không, đăng nhập sẽ không thành công do tên người dùng không tồn tại. – deceze
Lý do tôi muốn xác thực tên người dùng khi đăng nhập là vì tôi cũng đang sử dụng xác thực phía máy khách, điều này sẽ cho người dùng biết liệu họ có để trống trường tên người dùng hay không. – linkyndy
Rất tiếc, vẫn chưa nhận được. :) Thông báo "Thông tin đăng nhập không hợp lệ" chung là đủ, thậm chí có thể tốt hơn. Các thiết lập xác thực mô hình bánh là để đảm bảo rằng chỉ có dữ liệu được xác thực mới được lưu vào cơ sở dữ liệu. Khi đăng nhập, bạn không lưu bất cứ thứ gì vào cơ sở dữ liệu, vì vậy bạn không nên sử dụng các quy tắc xác thực. Nếu bạn chỉ muốn cảnh báo người dùng về đầu vào trống, hãy thực hiện ngay mà không cần sử dụng quy tắc xác thực mô hình. – deceze