i'm trying to develop a simple search form using cakedc plugin, i followed step by step the instructions , but i got the next error:

Database Error

Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'validateSearch' at line 1

SQL Query: validateSearch

i don't know what i got wrong, can you help me?, this is what i've got, Thank you. In the Controller:

class ProductosController extends AppController {

public $name = 'Productos';
public $uses = array('Empleado','Cliente', 'Mesa','Producto', 'Productotipo','Productos');  


    public $components = array('Search.Prg');
public $presetVars = true;
public $paginate=array();
public function ventas(){       
    $this->Prg->commonProcess();        
    $this->paginate['conditions'] = $this->Producto->parseCriteria($this->Prg->parsedParams());
    $this->set('productos', $this->paginate());
}

In the Model:

class Producto extends AppModel {
public $name = 'Producto';      
public $displayField = 'productotipos_id';  
    public $belongsTo = array('Productotipo'=>array('className'=>'Productotipo','foreignKey'=>'productotipos_id','conditions'=>'','order'=>''));    
public $actsAs = array('Search.Searchable');    
public $filterArgs = array(
    'nombre' => array('type' => 'like')     
);

In the view

<?php echo $this->Form->create('Producto', array('url' => array_merge(array('action'=>'ventas'), $this->params['pass'])));?>
<fieldset>
    <legend>Pedido</legend>
<?php   

    echo $this->Form->input('Producto.nombre', array('div'=>false,    'empty'=>true));          
    echo $this->Form->submit(__('Search', true), array('div' => false));
    echo $this->Form->end();        
    ?>
</fieldset>
有帮助吗?

解决方案

Try to reorder $uses that Controller's model will be the first:

public $uses = array('Producto', 'Empleado', 'Cliente', 'Mesa', 'Productotipo');

Should help. Don't know why, but probably some of methods from CakeDC Search plugin depends on first item in this array.

其他提示

SQL Query: validateSearch

Is the usual error when you try to call a model method that does not exist.

So whatever model you try to paginate (it was not a good idea to not paste the class declarations...) does not use the searchable behavior for some reason.

In the case the model is the correct one the behavior is not loaded for some reason that you'll have to figure out.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top