CakePHP, bir çoklu seçim kutusu için bir kompleks / çoklu bulmak durumunu ayarlama

1 Cevap php

Ben çoklu arama için bile tıklanabilir doğru görüntülüyor İmalatçı Adı adlı bir çoklu seçim kutusu var. Ben arama çalıştırdığınızda ben ayarlamak karmaşık bulmak şartları kullanarak benim veritabanından herhangi bir sonuç alamıyorum. Ben ekmek ve diğer çeşitli web siteleri ama boşuna Complex-Bul-Koşullar kullanmayı denedim.

//This my index.ctp
<?=$form->create('ManufacturersProductsLine', array('action'=>'index'));?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td>
                <?=$f->label('ManufacturersProductsLine.manufacturer_id', 'Manufacturer Name:'); ?>
                <?=$f->select('ManufacturersProductsLine.manufacturer_id', $manufacturers, null, array('multiple'=>'multiple', 'style'=>'height:100px;'))?>
            </td>
            <td>
                <?=$f->label('ManufacturersProductsLine.name', 'Product Name:'); ?>
                <?=$f->text('ManufacturersProductsLine.name', array('style'=>'width:140px;'));?>
            </td>
            <td>
                <label></label>
                <input name="Search" class="blue" type="submit" value="Search Product Lines" />
            </td>
        </tr>
    </table>

Dışarı yorumladı Ben birden bulmak koşullarının belirlenmesi için benim denetleyicisi denedim şeydir.

//This is my manufacturers_products_lines_controller.php
function index() {
    $conditions = array();
    if (!empty($this->data)) {
        $data = $this->data;

        $conditions[] = "(LOWER(ManufacturersProductsLine.manufacturer_id) LIKE '%{$data['ManufacturersProductsLine']['manufacturer_id']}%')";
        //$conditions = array("ManufacturersProductsLine.name" => array("Akuret", "Bridgestone", "American Radials") );

        debug($this->data);
    }
    $this->Manufacturer->recursive = 1;
    $this->set('manufacturersproductslines', $manufacturersproductslines = $this->paginate('ManufacturersProductsLine', $conditions));
    $Manufacturer = getModel('Manufacturer');
    $this->set('manufacturers', $Manufacturer->find('list'));
    //$this->ManufacturersProductsLine->recursive = 0;
    //$this->Post->find('all', array('conditions' => array('ManufacturersProductsLine.manufacturer_id' =>array(0,1,2,3,4,5,6,7,8,9,10,11,12,13))));

}

Ben hata ayıklama ve arama ne zaman aşağıdaki alıyorum.

Array
(
[ManufacturersProductsLine] => Array
    (
        [manufacturer_id] => Array
            (
                [0] => 1
                [1] => 2
            )

        [name] => 
    )
)

1 Cevap

bu sorgu koşulunu değiştirmeyi deneyin

$conditions[] = "ManufacturersProductsLine.manufacturer_id IN (" . implode( ',', $data['ManufacturersProductsLine']['manufacturer_id'] . ")";