protected function getFieldNameFromData($fieldName, $data, $default = null)
    {
        /*
         * Array field name, eg: field[key][key2][key3]
         */
        $keyParts = HtmlHelper::nameToArray($fieldName);
        $lastField = end($keyParts);
        $result = $data;

        /*
         * Loop the field key parts and build a value.
         * To support relations only the last field should return the
         * relation value, all others will look up the relation object as normal.
         */
        foreach ($keyParts as $key) {

            if ($result instanceof Model && $result->hasRelation($key)) {
                if ($key == $lastField) {
                    $result = $result->getRelationValue($key) ?: $default;
                }
                else {
                    $result = $result->{$key};
                }
            }
            elseif (is_array($result)) {
                if (!array_key_exists($key, $result)) {
                    return $default;
                }
                $result = $result[$key];
            }
            else {
                if (!isset($result->{$key})) {
                    return $default;
                }
                $result = $result->{$key};
            }

        }

        return $result;
    }
protected function getFieldNameFromData($fieldName, $data, $default = null)
    {
        /*
         * Array field name, eg: field[key][key2][key3]
         */
        $keyParts = HtmlHelper::nameToArray($fieldName);
        $lastField = end($keyParts);
        $result = $data;

        /*
         * Loop the field key parts and build a value.
         * To support relations only the last field should return the
         * relation value, all others will look up the relation object as normal.
         */
        foreach ($keyParts as $key) {

            if ($result instanceof Model && $result->hasRelation($key)) {
                if ($key == $lastField) {
                    $result = $result->getRelationValue($key) ?: $default;
                }
                else {
                    $result = $result->{$key};
                }
            }
            elseif (is_array($result)) {
                if (!array_key_exists($key, $result)) {
                    return $default;
                }
                $result = $result[$key];
            }
            else {
                if (!isset($result->{$key})) {
                    return $default;
                }
                $result = $result->{$key};
            }

        }

        return $result;
    }
protected function getFieldNameFromData ( $ fieldName , $ data , $ default = null ) { /*
         * Array field name, eg: field[key][key2][key3]
         */ $ keyParts = HtmlHelper :: nameToArray ( $ fieldName ) ; $ lastField = end ( $ keyParts ) ; $ result = $ data ; /*
         * Loop the field key parts and build a value.
         * To support relations only the last field should return the
         * relation value, all others will look up the relation object as normal.
         */ foreach ( $ keyParts as $ key ) { if ( $ result instanceof Model && $ result -> hasRelation ( $ key ) ) { if ( $ key == $ lastField ) { $ result = $ result -> getRelationValue ( $ key ) ? : $ default ; } else { $ result = $ result -> { $ key } ; } } elseif ( is_array ( $ result ) ) { if ( ! array_key_exists ( $ key , $ result ) ) { return $ default ; } $ result = $ result [ $ key ] ; } else { if ( ! isset ( $ result -> { $ key } ) ) { return $ default ; } $ result = $ result -> { $ key } ; } } return $ result ; }
Internal method to extract the value of a field name from a data set.
@param string $fieldName
@param mixed $data
@param mixed $default
@return mixed
Internal method to extract the value of a field name from a data set .