0

私がバージョン2.2から見たCakePHPのドキュメントには、AuthComponentの構成キー「contain」が追加されています。

コア認証オブジェクトは、次の構成キーをサポートします。

[...]

ユーザーレコードがロードされるときの包含可能なオプションが含まれます。

http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers

しかし、それがどのように機能するかは理解できます(例はありません)。

これは動作しません:

'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'),
        )
    )
)

提案?誰かがそれを試しましたか?

4

2 に答える 2

2

Contain()は異なるモデルを含むために使用され、Authがすでに取得しているものとは異なります(他のユーザー、つまりその友人などを含めようとしている場合を除きますが、「ユーザー」ではなくエイリアスを持っている可能性があります)。

したがって、例は次のようになります。

'Auth' => array(
    'authenticate'      => array(
        'Form' => array(
            'contain'   => array('Post'),
            'fields'    => array('username' => 'email'),
        )
    )
)

これにより、Authはユーザーのデータを取得するときに、ユーザーの投稿も取得します。

于 2012-12-03T14:58:32.517 に答える
2

あなたはほとんどそこにいました。次のように、最初の例に「fields」キーを追加するだけです。

'Auth' => array(
    'authenticate'      => array(
        'Form' => array(
            'contain'   => array('User' => array('fields'=>array('id', 'full_name'))),
            'fields'    => array('username' => 'email'),
        )
    )
)

注意:これは構文的には正しいのですが、「ユーザー」に「ユーザー」が含まれるべき理由がわかりません...まあYMMV

于 2012-12-03T14:57:31.923 に答える