在Laravel中获取Eloquent集合的项目类型

时间:2018-01-17 16:49:29

标签: php laravel-5 collections eloquent

我正在尝试找到检索集合中Eloquent Model类型项目的最佳方法。

当然我可以得到第一个项目并询问它的类型,但是我可能会遇到一个空集合,然后没有其他方法可以获得该类型。 这个问题与此类似 C# - Get the item type for a generic list 但我无法找到任何解决这个问题的laravel或php。

1 个答案:

答案 0 :(得分:0)

Collection上有一个名为getQueueableClass()的函数,它将返回集合中项目的类型。该函数基本上执行get_class($collection->first()),但它负责询问集合之前是否为空。但是,正如你在源代码中看到的那样,如果集合中有不同类型的对象,它将引发异常。

https://github.com/illuminate/database/blob/master/Eloquent/Collection.php#L392