Прежде всего, когда вы делаете это:
$checkertimeout = Attendance
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->get(['time_out']); // <---
Вы получаете Коллекция всех полей time_out
всех Attendance
моделей, соответствующих вашим критериям (where
с). Это означает, что-то вроде этого:
=> Illuminate\Database\Eloquent\Collection {#3323
all: [
App\Attendance {#3332
attend_date: "2019-10-06 22:01:29",
},
App\Attendance {#3340
attend_date: "2019-10-06 22:01:29",
},
App\Attendance {#314
attend_date: null,
},
],
}
Вы можете получить дополнительную информацию в Красноречивом разделе документации.
Теперь, еслиВаш запрос предназначен для получения только одной записи. Вы можете использовать метод ->first()
вместо get()
. Этот метод возвращает первый Attendance
объект, который соответствует вашим критериям.
$checkertimeout = Attendance
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->first(); // <---
PS: Если вам нужно только получить значение time_out
, вы также можете добавить ->select('attend_date')
к запросу:
$checkertimeout = Attendance
->select('time_out'); // <---
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->first(); // <---
С этими разъяснениями перейдем к вашему вопросу. Если вы хотите проверить, является ли поле пустым, вы можете просто использовать функцию PHP is_null()
.
Использование коллекции
$checkertimeout = Attendance
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->get(['time_out']);
if(is_null($checkertimeout->first()->time_out))
{
// ...
}
Использование одного объекта
$checkertimeout = Attendance
->select('time_out'); // <---
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->first(); // <---
if(is_null($checkertimeout->time_out)) // <----
{
// ...
}
Примечание:
В качестве примечания: если вы хотите избежать нулевых результатов для этого значения, вы можете добавить другое ограничение в свой запрос:
$checkertimeout = Attendance
::where('emp_id', $request->emp_id)
->where('attend_date', $date)
->whereNotNull('time_out') // <-----
->get(['time_out']);