Avatar billede Niko99 Nybegynder
23. april 2014 - 13:51 Der er 1 løsning

CakePHP model conditions

Hej Eksperten

Jeg arbejder med CakePHP og sidder lige pt med et lille problem med hensyn til strukturen i mit conditions($conds) array.

Jeg har brug for at conditionen skriver denne text streng
"(no LIKE %X% and no LIKE %X% and etc) OR
(name LIKE %X% and name LIKE %X% and etc) OR
(barcode LIKE %X% and barcode LIKE %X% and etc)"

Men kan ikke få strukturen til at hænge sammen siden cakephp vil ha conditions i et array.
Hvordan vil mit array se ud for at få den condition jeg har brug for ?

$result = $this->Product->find('all',
        array(
            'conditions' => $conds,
            'fields' => array('id', 'name','cate_no','barcode'),
            'order' => array('name'),
            'limit' => 100,
        ));
Avatar billede Niko99 Nybegynder
23. april 2014 - 14:22 #1
fandt selv svaret:

$conds = array(
                        'OR'=> array(
                            array('AND'=>array()),
                            array('AND'=>array()),
                            array('AND'=>array())
                        )
                      );
           
                    foreach ($pieces as $piece) {
                        $conds['OR'][0]['AND'][] = array('name LIKE' => "%{$piece}%");
                $conds['OR'][1]['AND'][] = array('barcode LIKE' => "%{$piece}%");
                $conds['OR'][2]['AND'][] = array('no LIKE' => "%{$piece}%");
                    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester