我有点菜鸟,但我想知道如何使用它,为此,我正在尝试开发一些非常简单的东西。
我有一个表单,其输入类型 = '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());