2009-01-13 15 views
7

CakePHP AuthComponent giả sử bạn có bảng Người dùng chứa tên người dùng và mật khẩu. Tôi muốn tìm cách ghi đè tablename mặc định từ Người dùng thành Tài khoản.Làm cách nào để sử dụng bảng khác với "Người dùng" cho AuthComponent của CakePHP?

Thông tin cơ sở:

Con đường tôi đã thiết kế cơ sở dữ liệu của tôi là để có một bảng Users và một bảng Accounts.

Accounts:

  • id

  • user_id

  • tên

  • mật khẩu

  • dịch vụ xác thực (ví dụ, trang web của tôi, Facebook, Google, OpenID vv)

Người dùng:

  • chỉ đơn giản là có tất cả các thông tin cá nhân của người sử dụng (tuổi, giới tính, vv)

lý do của việc này là để

  1. mỗi người dùng có thể có nhiều tài khoản họ có thể đăng nhập từ để họ không bị khóa vào một
  2. Tôi có thể kết nối các dịch vụ của bên thứ ba vào một tài khoản để biết thêm khiếp sợ

Bây giờ trở lại vấn đề ....

CakePHP có tài liệu về việc thay đổi tên trường mặc định, nhưng tôi không thể tìm thấy bất cứ điều gì về việc thay đổi tên bảng mặc định, nhưng cho rằng nó sẽ tương tự như trong tự nhiên ...

Ví dụ về việc thay đổi tên trường mặc định :

function beforeFilter() { 
    $this->Auth->fields = array(
      'username' => 'username', 
      'password' => 'secretword' 
     ); 
} 

Có cách nào để thực hiện điều này hay tôi nên cơ cấu lại các bảng giữ với quy ước CakePHP và vẫn thực hiện được điều tương tự?

+0

Bạn có nghĩa là Auth * Component *? – Cheekysoft

Trả lời

20

Trong app_controller.php:

function beforeFilter() { 
    $this->Auth->userModel = 'Account'; 
}