私は現在、ユーザーが時刻(朝、午後、夕方)でイベントの時刻を検索できるようにするために、(非常に厄介な!)カスタムAJAXフィルターコンポーネントを編集しています。システムは現在、1日の時間(12、08など)でレコードを検索し、フィルタリングで送信された時間を使用してデータベースでLIKE検索を実行し、結果を返します。
フィルタリングのモデルでは、次のように時間を時刻配列にグループ化しました。
if($time == 'morning') {
$times = array('07', '08', '09', '10', '11');
}
if($time == 'afternoon') {
$times = array('12', '13', '14', '15', '16');
}
if($time == 'evening') {
$times = array('17', '18', '19', '20', '21');
}
現在使用されているクエリは次のとおりです。
if ($time>0){
$query->where('a.startTime LIKE "%'.$time.'%"');
}
データベースを検索して、データベースの「time」フィールドの値が$ times配列にあるかどうかを確認し、必要な文字列の最初の2文字だけであるため、同様の処理を実行できるように、クエリを変更する必要があります。一致する。これは、データベースの値が変化する可能性があるため(15.30、15.45など)、時間(15)と一致する必要があるだけであるためです。
配列内のアイテムをループして「like」および「or」クエリを作成しようとしましたが、成功しませんでした。誰かアイデアはありますか?どうもありがとう