/** * Overridden so sensible schema handling can be used for: * Pivot objects and Eloquent Collections. Anything else * can be handled normally. * * @return array */ protected function analyzeCurrentData() { $relationship = $this->stack->end()->getRelationship(); $data = $relationship->isShowData() === true ? $relationship->getData() : null; if ($data instanceof Collection) { $firstItem = null; $isEmpty = count($data) === 0; $traversableData = $data; if ($isEmpty === false) { $firstItem = $data->first(); } if ($firstItem === null) { $traversableData = []; } return [$isEmpty, true, $traversableData]; } elseif ($data instanceof Pivot) { return [true, false, []]; } return parent::analyzeCurrentData(); }