私が今取り組んでいるのはレポートの生成で、1 つのページに住所、日付、性別、ワクチンの複数のフィールドがあります。
私が望むのは、アドレスが空で性別を入力した場合でも、選択された特定の性別をすべて取得し、ユーザーがフィールドに何も入力していない場合は自動的にすべてのレコードを取得することです。だから私がしたことはこれです
私のコントローラーで
if (!$request->input) {
$request->input = "";
}
if (!$request->vaccines) {
$vaccine_id = "";
}else{
$vaccine_id = $request->vaccines;
}
if (!$request->month) {
$newDate = " ";
}else{
$newDate = date("Y-m-d", strtotime($request->month));
}
if (!$request->gender) {
$request->gender = "";
}
$patient = Patient::where('patient_address', 'like' ,'%' . $request->input)->where('patient_sex', 'like' ,'%' . $request->gender)->whereHas('users', function($q) use($vaccine_id){
$q->where('vaccine_id', $vaccine_id);
})->get();
LIKE
そのため、患者の住所が空であっても、演算子とは異なり、結果が返されるように演算子を使用しました。=
これは、自動的に false を返し、WHERE
句の残りを終了します。患者の住所や性別のように、文字列型の列は問題なく機能しています。LIKE
しかし、整数に演算子を使用できないことがわかりました。したがって=
、vaccine_id で使用すると、条件が false の場合、LIKE
オペレーターとは異なり、データベース上のすべてのデータが自動的に取得されるわけではありません。
これに対する解決策はありますか?