0

コンテナブルがいかに優れているかについてよく読みました。正直なところ、私はすべてのドキュメントを読んでおり、ユーザーコントローラーで動作していますが、いくつかの点が明確ではありません:

  1. すべてのアクションで使用する必要がありますか、それとも Index() でのみ使用する必要がありますか?
  2. すべてのコントローラー index() 関数で定義する必要がありますか、それともユーザーコントローラーで一度で十分ですか
  3. たとえば、Country_ID がユーザーと関連モデルの両方に接続された FK である場合はどうでしょうか? 例えば:

    function index() {
       $this->paginate = array(
                'limit'=>10,
                'order'=>'User.created DESC',
                'fields'=>array('User.id','User.name', 'User.country_id', 'User.email'),
                'contain'=>array(
                    'Post',
                    'Company' => array(
                        'Country' => array(
                            'fields' => array('id', 'country')
                        )
                    ),
                    'Position' => array(
                        'Profession'
                    ),
                    'Preference',
                    'Country',
                    'Type'
                    ),
    
            );
            $this->set('users',$this->Paginate('User'));
    

    }

国は、ユーザーと会社の両方に接続されています。重複を作成せずにこれを定義する方法は?

どうもありがとう!

4

1 に答える 1

1

あなたは収容可能について間違った考えを持っているようです。「モデルの検索操作をフィルタリングおよび制限できます」。find() に特定の関連モデル データを含める (または除外する) 必要がある場合はいつでも使用します。

たとえば、ユーザーにはプロファイルが 1 つ、役割が複数あり、これは会社に属します。また、ユーザーのすべての役割と関連する会社を取得する必要がありますが、プロファイルは必要ありません。$this->User->find('first',array('conditions'=>...,'contain'=>array('Role'=>array('Company'))))

index() や users_controller とは関係ありません。

Country is both connected to User and Company. How to define this without creating duplicates?何の重複?

于 2011-08-08T07:49:43.713 に答える