witam,
Mam dziwny problem. W modelu mam relacje habtm (ale polaczenie jest tylko z rekordami z wartoscia "asc" pola "type")

model 'Ascendent':
  1. var $hasAndBelongsToMany = array(
  2. 'Asc'
  3. => array(
  4. 'className' => 'Asccheck'
  5. ,'foreignKey' => 'ascendent_id'
  6. ,'associationForeignKey' => 'asccheck_id'
  7. ,'unique' => true
  8. ,'conditions' => array('Asc.type' => 'asc')
  9. ));
  10.  


model 'Asccheck':
  1. var $hasAndBelongsToMany = array('Ascendent');


I ogolnie to mi dziala jak robie find all, ale jak zawieram warunki to O DZIWO nie wszystkie są przykazywane, tylko ostatni!
  1. $condd = array('Asc.planet' => 'sun', 'Asc.planet' => 'wenus', 'Asc.planet' => 'uran');
  2. $list = $this->Ascendent->Asc->find('all'
  3. , array('conditions'=> $condd)
  4. );
  5. $this->set('ascendent_find', $list);
  6. $this->set('condd', $condd);
  7.  


W widoku jak robie debug($condd) to w tablicy znajduje sie tylko ostatni element:
  1. (
  2. [Asc.planet] => uran
  3. )

a jak dam:
  1. $condd = array('Asc.planet' => 'uran', 'Asc.planet' => 'coś', 'Asc.planet' => 'wenus');

to debug zwraca:
  1. (
  2. [Asc.planet] => wenus
  3. )


Nic z tego nie rozumiem. Nigdy czegos takiego nie widziałem. Może jakieś wskazówki??

Dodam, że jeśli w warunkach umieszcze kryterium zwiazane z innym polem, np.
  1. $condd = array('Asc.type' => 'asc','Asc.planet' => 'sun', 'Asc.planet' => 'wenus', 'Asc.planet' => 'uran');

to zwraca mi jeden warunek z type oraz jeden z planet:
  1. (
  2. [Asc.type] => asc
  3. [Asc.planet] => uran
  4. )


Bylbym wdzieczny za rozwiklanie tej zagadki smile.gif