Пустой массив продолжает вести себя так, как будто в нем есть записи

#arrays #laravel #model-view-controller #laravel-8

Вопрос:

У меня есть an if else block , который возвращает список записей, если они есть в массиве, и, если они пусты, возвращает набор полей ввода.

Я сравнил два пустых массива, т.Е. У них обоих НУЛЕВЫЕ записи в базе данных. С моим $jobseeker->exams массивом все работает нормально. Но с моим $jobseeker->dependents массивом поля ввода не будут отображаться.

После проверки остальной части кода я попытался выполнить ddd(empty()) проверку, чтобы увидеть, есть ли какие-либо проблемы с самими массивами:

  1. $jobseeker->exams возвращено true ожидаемое поведение, когда я выполнил ddd('$jobseeker->exams') его, вернулось null.
  2. $jobseeker->dependents возвращено false :/, но когда я выполнил ddd('$jobseeker->dependents') после того, как он только показывает [] . (Опять же, в настоящее время в базе данных нет записей)

Что следует отметить:

  1. До того, как это произошло, у меня dependents в таблице было 2 записи, но я удалил их с помощью phpMyAdmin. Когда я подумал, что это может быть причиной, я выполнил a migrate:refresh в своей базе данных, но результат все тот же.
  2. Два массива представляют собой двумерные массивы, где: (вероятно, это неточный способ описания)
 $jobseeker->dependents =  [[0]['name','relationship'],[1]['name','relationship']] //and so on
$jobseeker->exams = [[0]['name','date'],[1]['name','date']] //and so on
 

Вопросы
Что случилось с моим кодом?
Что я могу сделать (если это возможно):

  1. Чтобы мой jobseeker->dependents массив снова стал нулевым
  2. Избегайте повторения этого (как правильно удалять записи из красноречивой модели?)

Ответ №1:

Проверьте свою модель, подумайте dependents , что это отношение, и laravel вызовет эту функцию и вернет пустой массив

обратитесь

https://laravel.com/docs/8.x/eloquent-relationships