im my model User.php

public $hasAndBelongsToMany = array(
        'Competence' => array(
            'with' => 'CompetencesUser',
            'className' => 'Competence',
            'joinTable' => 'competences_users',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'competence_id',
            'unique' => 'keepExisting',

my $filterArgs () in my model User.php i use before to modifie my request in $query

'competences' => array(
            'type' => 'subquery',
            'method' => 'findByCompetences',
            'field' => 'User.id',
            'before'=>true)

im my function findByCompetences($data=array()) i want have cometence1 and competence2 and competence 3 or competence4

 $this->CompetencesUser->Behaviors->attach('Containable', array(
                'autoFields' => false
            )
        );

        $this->CompetencesUser->Behaviors->attach('Search.Searchable');


        $query = $this->CompetencesUser->getQuery('all', array(
            'conditions' =>
        array(

        'Competence.competence' => $data['competences'],
        'fields' => array(
                'foreign_key'
            ),
            'contain' => array(
                'Competence'
            ),

        'search_with_connectors' => array(
        'type' => 'like',
        'field' => 'Competence.competence',
        'connectorAnd' => '+', 'connectorOr' => ','
    )

        )));
         return $query;
    }
0

There are 0 best solutions below