在CakePHP的文档中,我从版本2.2中看到,为AuthComponent添加了配置键'contains':
核心身份验证对象支持以下配置密钥。
[...]
包含加载用户记录时的可包含选项。
但我可以'理解它是如何工作的(没有例子)。
这不起作用:
'Auth' => array(
'authenticate' => array(
'Form' => array(
'contain' => array('User' => array('id', 'full_name')),
'fields' => array('username' => 'email'),
)
)
)
这两个都没有:
'Auth' => array(
'authenticate' => array(
'Form' => array(
'contain' => array('id', 'full_name'),
'fields' => array('username' => 'email'),
)
)
)
连连呢?有人试过吗?
答案 0 :(得分:2)
'Auth' => array(
'authenticate' => array(
'Form' => array(
'contain' => array('User' => array('fields'=>array('id', 'full_name'))),
'fields' => array('username' => 'email'),
)
)
)
注意:虽然这在语法上是正确的,但我不明白为什么'用户'应该包含'用户'......好吧YMMV
答案 1 :(得分:2)
Contain()
用于包含一个不同的模型,与Auth已经检索的模型不同(除非你试图包含其他用户,即他们的朋友或其他东西 - 但是你可能会有一个别名,而不是'用户')。
所以,一个例子是:
'Auth' => array(
'authenticate' => array(
'Form' => array(
'contain' => array('Post'),
'fields' => array('username' => 'email'),
)
)
)
这将导致Auth在检索用户数据时检索用户的帖子。