0

私の CakePHP サイトには 3 つのテーブルがあります。ユーザー、グループ、および groups_users。

users.id は、1 対多の関係を介して groups_users.users_id に参加します。

groups.id は、1 対多の関係を介して groups_users.groups.id に結合します。

したがって、groups_users には、すべてのユーザーとそのユーザーのグループのリストが含まれます。たとえば、ユーザー 1 は、グループ 1、2、および 3 に属している可能性があります。groups_users には、別の主キー フィールドも含まれます。

ユーザーがログインしたときにメンバーであるグループ名 (groups.groupName) の配列を返し、この配列を保持して、その groupName に特定のページを表示する権限があるかどうかを確認できるようにしたいサイト。

私はケーキは初めてですが、phpには慣れています。

4

1 に答える 1

0

私はこれらの状況では収容可能を好みます。このようにしない理由があれば、誰かが教えてくれると確信しています。

最初に、次の行を User モデルに追加する必要があります。

public $actsAs = array('Containable');

ここでも、関係が正しく設定されていることを確認してください。次に、コントローラーで次のコードを使用できます。

$groups = $this->User->find('first', array(
  'conditions' => array(
    'User.id' => $id
  ),
  'contain' => array(
    'Group' => array(
       'fields' => array(
         'Group.groupName'
        )
      )
   )
));
$this->set('groups', $groups);

最後の行は、ビューで変数を使用できるようにします。コントローラーまたはビューで debug($groups) を実行して、出力を確認してください。

于 2013-03-20T03:18:52.743 に答える