我正在尝试找到检索集合中Eloquent Model类型项目的最佳方法。
当然我可以得到第一个项目并询问它的类型,但是我可能会遇到一个空集合,然后没有其他方法可以获得该类型。 这个问题与此类似 C# - Get the item type for a generic list 但我无法找到任何解决这个问题的laravel或php。
答案 0 :(得分:0)
Collection上有一个名为getQueueableClass()
的函数,它将返回集合中项目的类型。该函数基本上执行get_class($collection->first())
,但它负责询问集合之前是否为空。但是,正如你在源代码中看到的那样,如果集合中有不同类型的对象,它将引发异常。
https://github.com/illuminate/database/blob/master/Eloquent/Collection.php#L392