2016-03-23 20 views
0

Çocuklar belirli gruplardaki kullanıcı sayısını göstermeye çalışıyorum. Derneklerle çalışıyorum ama çalışmıyor.Cakephp 3 grubundaki kullanıcı sayısı

ve ikinci User groups

Kullanıcılar tablo:

id group_id status username  password 

Kullanıcı grupları tablosu: listesinde nerede İki tablo var ben number_users_in_group

göstermek istiyorum user groups listeleme önce

/** 
* Index method 
* 
* @return \Cake\Network\Response|null 
*/ 
public function index() 
{ 
    $usersGroup = $this->paginate($this->UsersGroup); 

    $this->set(compact('usersGroup')); 
    $this->set('_serialize', ['usersGroup']); 
} 

Ve index.cp i bu sonuçları foreach:

group_id name permission  

10 i bu yöntemi kullanan tüm grupları göstermek için. Yani bu sonuçta ben .. çok kullanıcıların grubunda ne kadar grubun her biri için numara eklemek istediğiniz

Örnek:

  1. Yönetici (5) < --- administarator grubunda 5 kullanıcıları
  2. Moderatör (3)

Nasıl Yapılır?

+0

"_doesn't içinde count can work_ "uygun bir problem açıklaması değil! Lütfen her zaman ne yaptığınızı gösterin ve _exactly_'in ne olduğuna ve bunun yerine ne olmasını beklediğinize daha spesifik olun. Ayrıca hata ayıklama girişimlerinizi de gösterin. – ndm

cevap

1

Eğer kullanıcı grubu modeline

$this->hasMany('Users', [ 
      'foreignKey' => 'group_id' 
     ]); 

yılında dernek beyan ve gereken bunun için associations

public function index() 
    { 
     $usersGroups = $this->UsersGroup->find('all',['contain'=>['Users']]); 

     $this->set('userGroups',$this->paginate($usersGroups)); 
     $this->set('_serialize', ['usersGroups']); 
    }; 

kullanmak artık görünümü döngü

foreach ($userGroups as $group) 
echo count($group->users); 
+1

A ** [karşı önbellek] (http://book.cakephp.org/3.0/en/orm/behaviors/counter-cache.html) ** muhtemelen daha verimli olacaktır. – ndm

+0

@Mazba işine teşekkürler. @ndm ayrıca ty 'counter cache' sesleri 'i çalışacağım – Ivan