proper way to make cakephp filter by group. Make Group containable, always add the join

pull/2774/head
Isaac Connor 2019-12-20 14:56:01 -05:00
parent 0142c71c85
commit bcda92058e
1 changed files with 8 additions and 17 deletions

View File

@ -36,7 +36,7 @@ class MonitorsController extends AppController {
* @return void
*/
public function index() {
$this->Monitor->recursive = 1;
$this->Monitor->recursive = 0;
if ( $this->request->params['named'] ) {
$this->FilterComponent = $this->Components->load('Filter');
@ -50,28 +50,19 @@ class MonitorsController extends AppController {
$conditions['Monitor.Id' ] = $allowedMonitors;
}
$find_array = array('conditions'=>&$conditions,'contain'=>array('Group'));
if ( isset($conditions['`GroupId` ']) ) {
$find_array['joins'] = array(
$find_array = array(
'conditions' => &$conditions,
'contain' => array('Group'),
'joins' => array(
array(
'table' => 'Groups_Monitors',
'type' => 'inner',
'type' => 'inner',
'conditions' => array(
'Groups_Monitors.MonitorId = Monitor.Id',
'Groups_Monitors.GroupId' => $conditions['`GroupId` ']
),
),
//array(
//'table' => 'Groups',
//'type' => 'inner',
//'conditions' => array(
//'Groups.Id = Groups_Monitors.GroupId',
//'Groups.Id' => $this->request->params['GroupId'],
//),
//)
);
unset($conditions['`GroupId` ']);
}
)
);
$monitors = $this->Monitor->find('all',$find_array);
$this->set(array(
'monitors' => $monitors,