查看向控制器发送操作并返回查询


View Sending an Action to a Controller and returning a query

我有点菜鸟,但我想知道如何使用它,为此,我正在尝试开发一些非常简单的东西。

我有一个表单,其输入类型 = 'text',我想在我的数据库中搜索我刚刚在此输入中键入的内容。

我该怎么做?

我知道我必须获取输入文本中的内容,并在控制器中执行一个函数,该函数将接收参数并执行查询并将相同的查询返回到我的视图。

我还不能做的另一件事是:

<button type="submit" class="btn"><i class="icon-search"></i></button>

我想将其更改为蛋糕格式,例如:

echo $this->Form->input('button', array('class' => 'btn', type = 'submit'));

但不知道如何添加图标。

谢谢。

您可以

指定按钮文本。

<?php 
  echo $this->Form->button(
    "<i class='icon-search'></i>", 
    array(
            'class' => 'btn', 
            'type' => 'submit', 
            'escape' => false
  )); // make sure you've use escap = false with html input.
?>

对于搜索,您可以像这样定义操作。

<?php
public function search() {
        $conditions = array();
        $params = $this->passedArgs;
        if(isset($params['text_field_name']) && !empty($params['text_field_name'])){
            $conditions['ModelName.text_field_name like'] = $params['text_field_name'].'%';
        }

        $this->Paginate->settings = array(
            'conditions' => $conditions
        );
        $this->set('variable_name', $this->Paginator->paginate());
    }
?>

你也可以用它来搜索

---- .ctp 文件中

<?php echo $this->Form->create('ModelName'); ?>
<?php echo $this->Form->input('ModelName.search_word'); ?>
<?php  echo $this->Form->submit(" <i class='icon-search'></i> " , array('escape' => false  , 'class' => 'btn' ) ); ?>
<?php echo $this->Form->end(); ?> // note that no params for end() method

控制器文件中----

$searchWord = $this->request->data['ModelName']['search_word'] ;
$this->paginate = array('limit' => 30 ,
            'conditions' => array('OR' => array('ModelName.field1' => "%".$searchWord."%" ,
                                        'ModelName.field2 LIKE' => "%".$searchWord."%" )));
$this->set('searchResults', $this->paginate());