$queryName表示姓名,$queryId表示身份證號(hào),$queryLibid表示庫(kù)id,我在一個(gè)庫(kù)里進(jìn)行姓名和身份證搜索功能,姓名和身份證不能同時(shí)為空(不是模糊搜索),如果姓名不為空,身份證為空,把滿足條件的人查詢出來(lái);姓名為空,身份證不為空,把滿足條件的人查詢出來(lái);如果都不為空,倆者都滿足的查出來(lái);人必須在這個(gè)庫(kù)里,不能把其他庫(kù)的人查出來(lái)
$queryName = request('queryName'); $queryId = request('queryIdcode'); $queryLibid = request('queryLibid'); if (empty($queryName) && empty($queryId)) {
return [
'error' => 1,
'msg' => "請(qǐng)輸入搜索條件",
];
} $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 .
5 回答

GCT1015
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
$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'));
最后用了最老土的方法解決了問(wèn)題

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
第2步中的查詢還沒(méi)寫完整吧?$infos->get();
第3步people()中的where()改成wherePivot('status', '<>', 2)試一下

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
if(isset($queryName)) {
$query = $query->where('name',$queryName);
}
if (isset($queryId)) {
$query = $query->where('id_code',$queryId);
}

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
驗(yàn)證的話 直接用 $this->validate().... 這樣去驗(yàn)證
查詢的話 試試這個(gè)
$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();
- 5 回答
- 0 關(guān)注
- 672 瀏覽
添加回答
舉報(bào)
0/150
提交
取消