То, что я работаю прямо сейчас, это сгенерировать отчет и у меня есть несколько полей на одной странице, которые адрес, дата, пол и вакцинаLaravel красноречив, где, как оператор для целочисленных
То, что я хочу, даже если адрес пуст, и я ввел пол, он все равно вытребует весь определенный гендер, который был выбран, и если пользователь ничего не вводил в полях, он автоматически будет извлекать все записи. Так что я сделал это
В моем контроллере
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
оператора, так что даже если адрес пациент был пуст, все равно будет возвращать результаты в отличие от =
оператора он будет автоматически возвращать ложные и заканчивается остальная часть статьи WHERE
. столбцы типа строки работают очень хорошо, как адрес пациента и пол. Но я только узнал, что вы не можете использовать оператор LIKE
для целого числа. Поэтому, если я использую =
на vaccine_id, если условие ложно, оно не будет автоматически извлекать все данные в базе данных в отличие от оператора LIKE
.
Есть ли какие-либо решения?
Спасибо так много он работал! – Christian