Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
--------------------------------
Версия Laravel в формате 5.5.14
Версия PHP в формате 7.1
Операционная система и её версия ( Windows 10 x64 )
Вендор и версия Веб-сервера в формате Apache- PHP - 7 / Nginx 1.10
---------------------------------
Существует список докторов, которых получаю из БД в переменную:
$doctors = Doctor::select('name', 'specialization')->get();
Есть список клиентов, которые записаны к этим врачам:
$clients = Doctor::select(.....)->get()
В нынешнем варианте реализации проекта для отображения расписания необходимо, что бы каждый элемент коллекции $clients (ключь - имя врача) содержал ровно 9 элементов (это временные отрезки, на которые можно записаться).
По этому, если например, у кого-то есть 8 пациентов, то 9-й отрезок забивается тестовыми данными.($doctors_time_arr2 - "служебный" массив... так пока надо, в него передаются данныне из $clients) )
foreach ($doctors as $item){
// try {
while (count($doctors_time_arr2[$item->name]) < 9) {
array_push($doctors_time_arr2[$item->name], ([ .... ]);
Если каждый из существующих врачей ($doctors) имеет хотя бы по 1 клиенту - все работает норм!, но если например врачей 6, а на сегодня записывались только к 5-ти, то цикл foreach не может заполнить 6-го врача тестовыми данными.
Выдает такую ошибку: ErrorException (E_NOTICE) Undefined index: Олег Дмитриевич.
Я хотел отловить эту ошубку через try-catch.
Так как это ErrorException, то хотелось как-то так:
foreach ($doctors as $item){
try {
while (count($doctors_time_arr2[$item->name]) < 9) {
array_push($doctors_time_arr2[$item->name], ([
'name' => 'noname',
'specialization' => 'specialization',
'doctor' => 'nodoctor',
'time' => '19:00',
'status' => '2'])
);
}
}
catch (ErrorException $e){
$doctors_time_arr2[] = $item->name;
while (count($doctors_time_arr2[$item->name]) < 9) {
array_push($doctors_time_arr2[$item->name], ([
'name' => 'noname',
'specialization' => 'specialization',
'doctor' => 'nodoctor',
'time' => '19:00',
'status' => '2'])
);
}
}
Но ошибка осталась. Как решить этот конфликт?
Изменено PashaKiev (23.02.2018 19:02:57)
Не в сети
Страницы 1