【问题标题】:View Sending an Action to a Controller and returning a query查看向控制器发送操作并返回查询
【发布时间】:2013-10-18 01:34:45
【问题描述】:

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

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

我该怎么做?

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

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

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

我想把它改成蛋糕格式,比如:

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

但不知道如何添加图标。

谢谢。

【问题讨论】:

    标签: php apache cakephp frameworks cakephp-2.0


    【解决方案1】:

    你可以指定按钮文字喜欢。

    <?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());
        }
    ?>
    

    【讨论】:

      【解决方案2】:

      你也可以用它来搜索

      ---- 在您的 .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());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 2019-03-18
        相关资源
        最近更新 更多