protected function getItemsFromData($columns)
    {
        $items = [];

        foreach ($this->data as $key => $item) {
            foreach ($columns as $column) {
                $fieldName = $column->getField();
                $fieldValue = '';

                if ($this instanceof Entity) {
                    // Mapped field
                    $itemEntity = $item;
                    if (strpos($fieldName, '.') === false) {
                        $functionName = ucfirst($fieldName);
                    } else {
                        // loop through all elements until we find the final entity and the name of the value for which we are looking
                        $elements = explode('.', $fieldName);
                        while ($element = array_shift($elements)) {
                            if (count($elements) > 0) {
                                $itemEntity = call_user_func([$itemEntity, 'get' . $element]);
                            } else {
                                $functionName = ucfirst($element);
                            }
                        }
                    }

                    // Get value of the column
                    if (isset($itemEntity->$fieldName)) {
                        $fieldValue = $itemEntity->$fieldName;
                    } elseif (is_callable([$itemEntity, $fullFunctionName = 'get' . $functionName])
                           || is_callable([$itemEntity, $fullFunctionName = 'has' . $functionName])
                           || is_callable([$itemEntity, $fullFunctionName = 'is' . $functionName])) {
                        $fieldValue = call_user_func([$itemEntity, $fullFunctionName]);
                    } else {
                        throw new PropertyAccessDeniedException(sprintf('Property "%s" is not public or has no accessor.', $fieldName));
                    }
                } elseif (isset($item[$fieldName])) {
                    $fieldValue = $item[$fieldName];
                }

                $items[$key][$fieldName] = $fieldValue;
            }
        }

        return $items;
    }
protected function getItemsFromData($columns)
    {
        $items = [];

        foreach ($this->data as $key => $item) {
            foreach ($columns as $column) {
                $fieldName = $column->getField();
                $fieldValue = '';

                if ($this instanceof Entity) {
                    // Mapped field
                    $itemEntity = $item;
                    if (strpos($fieldName, '.') === false) {
                        $functionName = ucfirst($fieldName);
                    } else {
                        // loop through all elements until we find the final entity and the name of the value for which we are looking
                        $elements = explode('.', $fieldName);
                        while ($element = array_shift($elements)) {
                            if (count($elements) > 0) {
                                $itemEntity = call_user_func([$itemEntity, 'get' . $element]);
                            } else {
                                $functionName = ucfirst($element);
                            }
                        }
                    }

                    // Get value of the column
                    if (isset($itemEntity->$fieldName)) {
                        $fieldValue = $itemEntity->$fieldName;
                    } elseif (is_callable([$itemEntity, $fullFunctionName = 'get' . $functionName])
                           || is_callable([$itemEntity, $fullFunctionName = 'has' . $functionName])
                           || is_callable([$itemEntity, $fullFunctionName = 'is' . $functionName])) {
                        $fieldValue = call_user_func([$itemEntity, $fullFunctionName]);
                    } else {
                        throw new PropertyAccessDeniedException(sprintf('Property "%s" is not public or has no accessor.', $fieldName));
                    }
                } elseif (isset($item[$fieldName])) {
                    $fieldValue = $item[$fieldName];
                }

                $items[$key][$fieldName] = $fieldValue;
            }
        }

        return $items;
    }
protected function getItemsFromData ( $ columns ) { $ items = [ ] ; foreach ( $ this -> data as $ key => $ item ) { foreach ( $ columns as $ column ) { $ fieldName = $ column -> getField ( ) ; $ fieldValue = '' ; if ( $ this instanceof Entity ) { // Mapped field $ itemEntity = $ item ; if ( strpos ( $ fieldName , '.' ) === false ) { $ functionName = ucfirst ( $ fieldName ) ; } else { // loop through all elements until we find the final entity and the name of the value for which we are looking $ elements = explode ( '.' , $ fieldName ) ; while ( $ element = array_shift ( $ elements ) ) { if ( count ( $ elements ) > 0 ) { $ itemEntity = call_user_func ( [ $ itemEntity , 'get' . $ element ] ) ; } else { $ functionName = ucfirst ( $ element ) ; } } } // Get value of the column if ( isset ( $ itemEntity -> $ fieldName ) ) { $ fieldValue = $ itemEntity -> $ fieldName ; } elseif ( is_callable ( [ $ itemEntity , $ fullFunctionName = 'get' . $ functionName ] ) || is_callable ( [ $ itemEntity , $ fullFunctionName = 'has' . $ functionName ] ) || is_callable ( [ $ itemEntity , $ fullFunctionName = 'is' . $ functionName ] ) ) { $ fieldValue = call_user_func ( [ $ itemEntity , $ fullFunctionName ] ) ; } else { throw new PropertyAccessDeniedException ( sprintf ( 'Property "%s" is not public or has no accessor.' , $ fieldName ) ) ; } } elseif ( isset ( $ item [ $ fieldName ] ) ) { $ fieldValue = $ item [ $ fieldName ] ; } $ items [ $ key ] [ $ fieldName ] = $ fieldValue ; } } return $ items ; }
Gets an array of data items for rows from the set data.

@return array
Gets an array of data items for rows from the set data .