在一个库里根据姓名,身份证号搜索人物信息

  1. $queryName表示姓名,$queryId表示身份证号,$queryLibid表示库id,我在一个库里进行姓名和身份证搜索功能,姓名和身份证不能同时为空(不是模糊搜索),如果姓名不为空,身份证为空,把满足条件的人查询出来;姓名为空,身份证不为空,把满足条件的人查询出来;如果都不为空,俩者都满足的查出来;人必须在这个库里,不能把其他库的人查出来
  2. $queryName = request('queryName');
    $queryId = request('queryIdcode');
    $queryLibid = request('queryLibid');
    if (empty($queryName) && empty($queryId)) {

      return [
         'error' => 1,
         'msg' => "请输入搜索条件",
     ];

    }
    $infos = new YBukonglibMgr;
    $infos = $infos->where('id',$queryLibid);
    $infos = $infos->whereHas('people', function ($query) use($queryName, $queryId) {

     if(!empty($queryName)) {
         $query = $query->where('name',$queryName);
     }
     if (!empty($queryId)) {
         $query = $query->where('id_code',$queryId);
     }

    });
    $view = 'library/control/result_querypeople';
    3 .
    https://img1.mukewang.com/5c8f5dc70001b71708000123.jpg

https://img.mukewang.com/5c8f5dc8000183aa08000089.jpg

哈士奇WWW
浏览 650回答 5
5回答

GCT1015

$tid = $queryLibid; // dd($infos); $infos = new \YPeoplelib; if(!empty($queryName)) { $infos = $infos->where('name', '=', $queryName); } if (!empty($queryId)) { $infos = $infos->where('id_code', '=', $queryId); } $peoples_query = $infos->get(); // dd($peoples); $infos = \YBukonglibMgr::find($queryLibid)->people()->get(); // dd($infos); $peoples = []; foreach ($peoples_query as $vid) { foreach ($infos as $inid){ if ($vid->id == $inid->id) { $peoples[] = $inid; } } } $sum = count($peoples); // dd($peoples); $view = 'library/control/result_querypeople'; return view($view, compact('peoples', 'sum', 'tid')); 最后用了最老土的方法解决了问题

喵喔喔

第2步中的查询还没写完整吧?$infos->get();第3步people()中的where()改成wherePivot('status', '<>', 2)试一下

慕桂英3389331

if(isset($queryName)) { $query = $query->where('name',$queryName); } if (isset($queryId)) { $query = $query->where('id_code',$queryId); }

繁星点点滴滴

验证的话 直接用 $this->validate().... 这样去验证查询的话 试试这个 $res = YBukonglibMgr::when($queryName, function ($query) use ($queryName) { return $query->whereName($queryName); }) ->when($queryId, function ($query) use ($queryId) { return $query->where('id_code' , $queryId); })->get();
打开App,查看更多内容
随时随地看视频慕课网APP