Laravel5中实现模糊匹配加多条件查询功能的方法威

本文实例讲述了Laravel5中实现模糊匹配加多条件查询功能的方法。分享给大家供大家参考,具体如下:

本文实例讲述了Laravel框架实现model层的增删改查(CURD)操作。分享给大家供大家参考,具体如下:

方法1. ORM模式

protected $table = 'user_city';
public $timestamps = false;
//添加 返回id
public function cityadd($data)
{
    return $this->insertGetId($data);
}
//单条查找
public function getfind($id)
{
    if($this->where('id',$id)->first()){
      return $this->where('id',$id)->first()->toArray();
    }else{
      return [];
    }
}
//查询用户有几个uid,返回数量
public function countCity($uid){
    if($this->where('uid',$uid)->first()){
      return $this->where('uid',$uid)->count();
    }else{
      return [];
    }
}
//查询全部数据
public function getAll()
{
    return $this->get()->toArray();
}
/**
* 修改管理员信息
* @param $id
* @param $data
* @return bool
*/
public function upAdmin($id,$data)
{
    if($this->find($id)){
      return $this->where('id',$id)->update($data);
    }else{
      return false;
    }
}
//加条件,时间
//查询用户的认购的城数
public function buy_num($uid){
    $startDate = date('Y-m-01', strtotime(date("Y-m-d")));
    $endDate = date('Y-m-d', strtotime("$startDate  1 month -1 day"));
    // 将日期转换为Unix时间戳
    $endDate=$endDate." 22:59:59";
    $startDateStr = strtotime($startDate);
    $endtDateStr = strtotime($endDate);
    return $this->where('uid',$uid)->where('buy_type',1)->whereBetween('create_time', array($startDateStr,$endtDateStr))->sum('buy_num');
}
/**
* 根据id查找城池信息 只返回某个字段的值
* @param $id
* @return array
*/
public function getCityName($id)
{
    if($this->where('city_id',$id)->first()){
      return $this->where('city_id',$id)->lists('city_name')[0];
    }else{
      return [];
    }
}
public function ReportAccurate($data)
{
 if(is_array($data))
 {
   $where = $this->whereAll($data);
   return $where;
 }
 else
 {
   return false;
 }
}
/*多条件模糊*/
public function whereAll($data)
{
  $query = new ReportMainpage();
  $results = $query->where(function ($query) use ($data) {
    $data['report_first_received_date'] && $query->where('report_first_received_date', 'like', '%' . $data['report_first_received_date'] . '%');
    $data['report_drug_safety_date'] && $query->where('report_drug_safety_date', 'like', '%' . $data['report_drug_safety_date'] . '%');
    $data['aecountry_id'] && $query->where('aecountry_id', $data['aecountry_id']);
    $data['received_fromid_id'] && $query->where('received_fromid_id', $data['received_fromid_id']);
    $data['research_id'] && $query->where('research_id', 'like', '%' . $data['research_id'] . '%');
    $data['center_number'] && $query->where('center_number', 'like', '%' . $data['center_number'] . '%');
  })->get();
  return $results;
}

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

上面的$data为前端传过来的数组 利用封装拼接进行模糊或者精确的多条件搜素

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

不好的地方 代码不健壮 不利于维护

您可能感兴趣的文章:

本文由威尼斯人棋牌发布于计算机教程,转载请注明出处:Laravel5中实现模糊匹配加多条件查询功能的方法威