В чем разница между этими методами
Я использовал их, и каждый из них дает другой результат, и иногда мне нужно добавить toArray() в конец get() потому что моя функция ожидает массив. Не будут ли другие методы создавать массивы?
find($id) принимает идентификатор и возвращает одну модель. Если подходящая модель не существует, она возвращает null .
findOrFail($id) принимает идентификатор и возвращает одну модель. Если подходящая модель не существует, она выдает ошибку.
first() возвращает первую запись, найденную в базе данных. Если подходящая модель не существует, она возвращает null .
firstOrFail() возвращает первую запись, найденную в базе данных. Если подходящая модель не существует, она выдает ошибку.
get() возвращает коллекцию моделей, соответствующих запросу.
pluck($column) возвращает коллекцию только значений в данном столбце. В предыдущих версиях Laravel этот метод назывался lists .
toArray() преобразует модель / коллекцию в простой массив PHP.
Примечание. Коллекция представляет собой усиленный массив. Он функционирует аналогично массиву, но имеет много дополнительных функций, как вы можете видеть в документах .
К сожалению, PHP не позволяет использовать объект коллекции везде, где вы можете использовать массив. Например, использование коллекции в цикле foreach в порядке, поместить ее в array_map нет. Точно так же, если вы набираете тип hint как array , PHP не позволит вам передать ему коллекцию. Более новые версии PHP имеют iterable тип, который можно использовать для приема как массивов, так и коллекций.
Если вы хотите получить простой массив из коллекции, вызовите его метод all() .