【问题标题】:Multiple like conditions in Codeigniter 4Codeigniter 4 中的多个类似条件
【发布时间】:2020-04-30 23:35:44
【问题描述】:

请帮我在 Codeigniter 4 中使用多个条件?

我使用了以下代码,但它不起作用,抛出一个错误,其中一个像它工作正常。

$users = $model->like('title', $this->request->getVar('search'))->like('name', $this->request->getVar('search'))->get();
 $db  = \Config\Database::connect();
 $user = $db->table('staff');
 $user = $db->like('title', $this->request->getVar('search'));
 $user = $db->or_like('name', $this->request->getVar('search'));
 $query = $user->get();

【问题讨论】:

    标签: codeigniter codeigniter-4


    【解决方案1】:

    您的第二个代码使用or_like,但在Codeigniter 4 中您应该使用orLikehttps://codeigniter4.github.io/userguide/database/query_builder.html

    我不知道它会抛出什么类型的错误(你应该发布它)以及两个代码中哪一个是正确的,但你的代码应该是这样的:

    $db = \Config\Database::connect();
    $builder = $db->table('staff');
    $users = $builder->like('title', $this->request->getVar('search'))->orLike('name', $this->request->getVar('search'))->get();
    

    【讨论】:

      【解决方案2】:

      这是我自己的方法。

      namespace App\Models;
      
      use CodeIgniter\Model;
      
      class SearchData extends Model
      {
          protected $table = 'Staff';
          
          /**
           * An array of search result
           * 
           * @var $Keyword string
           *
           * @return array
           */
      public function FindStaffMember($Keyword){
      $ResponseData="No Record Found!";
      //::You could past third parameter
      //$this->like('title', 'match', 'before'); // Produces: WHERE `title` LIKE '%match' ESCAPE '!'
      //$this->like('title', 'match', 'after');  // Produces: WHERE `title` LIKE 'match%' ESCAPE '!'
      //$this->like('title', 'match', 'both');   // Produces: WHERE `title` LIKE '%match%' ESCAPE '!'
              $this->like("Staff_Name", $Keyword);
              $this->orLike("Staff_Id", $Keyword);
              $this->limit(10);
              $this->orderBy("Staff_Name", "ASC");
              //:::::
              $query = $this->get();
      
      //$RecordCounted=count($query->getResultArray());   //::: 
          
          if($query->getResultArray()){
              
              $ResponseData=$query->getResultArray();
          }
          
          return $ResponseData;
      }
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        • 2012-05-19
        • 2013-04-06
        • 2017-12-02
        • 1970-01-01
        • 2019-04-01
        • 2011-12-07
        相关资源
        最近更新 更多