我是 Laravel 的初學者。我在 Laravel 中做了我的第一個專案。我在我的專案中使用 Laravel 8。
我有這個代碼:
$query = Immovable::query()
->leftJoin('streets', 'streets.gus_id', '=', 'immovables.street_gus_id')
->select('immovables.id',
'immovables.street_gus_id',
'immovables.building_number',
'immovables.apartment_number',
'streets.name as street_name'
);
if (request()->has('search')) {
$query->where('streets.name', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.community', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.city', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.building_number', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.granted_comments', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.inspections', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.oze_installations', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.pesel', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.name', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.surname', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.email1', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.email2', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.email3', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.phone1', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.phone2', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.phone3', 'like', "%" . $request->search['value'] . "%");
$query->orWhere('immovables.description', 'like', "%" . $request->search['value'] . "%");
}
$query->get();
它作業正常。
當我嘗試一次在姓名和姓氏中查找用戶時遇到問題。例如,當我寫:Karol - 我有結果。當我寫 Krawczyk 時 - 我有結果。當我寫作時:Karol Krawczyk - 我還沒有結果
我該如何修復?
uj5u.com熱心網友回復:
一種方式是通過分隔符打破你的搜索值(在這種情況下,空間可能是合適的一種)的,和環orWhere部分
$query = Immovable::query()
->leftJoin('streets', 'streets.gus_id', '=', 'immovables.street_gus_id')
->select('immovables.id',
'immovables.street_gus_id',
'immovables.building_number',
'immovables.apartment_number',
'streets.name as street_name'
);
if (request()->has('search')) {
$searches = explode(" ", $request->search['value']);
foreach ($searches as $index => $search) {
if ($index === 0) {
$query->where('streets.name', 'like', "%" . $search . "%");
} else {
$query->orWhere('streets.name', 'like', "%" . $search . "%");
}
$query->orWhere('immovables.community', 'like', "%" . $search . "%");
$query->orWhere('immovables.city', 'like', "%" . $search . "%");
$query->orWhere('immovables.building_number', 'like', "%" . $search . "%");
$query->orWhere('immovables.granted_comments', 'like', "%" . $search . "%");
$query->orWhere('immovables.inspections', 'like', "%" . $search . "%");
$query->orWhere('immovables.oze_installations', 'like', "%" . $search . "%");
$query->orWhere('immovables.pesel', 'like', "%" . $search . "%");
$query->orWhere('immovables.name', 'like', "%" . $search . "%");
$query->orWhere('immovables.surname', 'like', "%" . $search . "%");
$query->orWhere('immovables.email1', 'like', "%" . $search . "%");
$query->orWhere('immovables.email2', 'like', "%" . $search . "%");
$query->orWhere('immovables.email3', 'like', "%" . $search . "%");
$query->orWhere('immovables.phone1', 'like', "%" . $search . "%");
$query->orWhere('immovables.phone2', 'like', "%" . $search . "%");
$query->orWhere('immovables.phone3', 'like', "%" . $search . "%");
$query->orWhere('immovables.description', 'like', "%" . $search . "%");
}
}
$query->get();
讓我知道這是否適合您。謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384621.html
上一篇:如何在Laravel中使用純html表單<formaction=""method="">而不是{!!表單::打開(['action
