首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:非抽象方法NF_Handlers_FieldsetRepeater::isFieldsetData()必须包含

致命错误:非抽象方法NF_Handlers_FieldsetRepeater::isFieldsetData()必须包含
EN

Stack Overflow用户
提问于 2021-07-01 13:40:29
回答 1查看 133关注 0票数 0

真的很想帮忙!我试着删除分号,但仍然得到了以下错误:

非抽象方法NF_Handlers_FieldsetRepeater::isFieldsetData()必须在第173行的/home/warstdam/public_html/wp-content/plugins/ninja-forms/includes/Handlers/FieldsetRepeater.php中包含

致命错误

代码语言:javascript
复制
/**
 * Determine if data matches fieldset repeater construct
 *
 * When given only a submission value without any meta data, check the
 * construct of the value to asssert with some level of confidence that
 * the value is from a fieldset repeater.
 *
 * Logic: 
 *  - is submission empty? then NO, we don't assert is fieldset repeater data
 *  - can the array key be parsed as a fieldset repeater key?  If not, then NO…
 *  - is each value an array with 'id' and 'value' keys,
 *    and the `id` matches the id of its parent?  If not, then NO...
 *
 * If all the above conditions are met for every entry in the submission,
 * we assert that the submission value is that of a fieldset repeater.
 * 
 *  
 * @param array $submission
 * @return boolean
 */
public function isFieldsetData(array $submission); bool
{
    $return = true;

    // If not array containing data, not fieldset repeater
    if (empty($submission)) {
        $return = false;
    }

    foreach($submission as $key=>$submissionValueArray){
        $submissionReference = $this->parseFieldsetFieldReference($key);

        if(-1===$submissionReference){
            $return = false;
        }

        if(!isset($submissionValueArray['id'])
           || $key!==$submissionValueArray['id']
           || !isset($submissionValueArray['value'])){
            $return = false;
        }
    }

下面是代码的结尾

代码语言:javascript
复制
{
    $return = [];

    if (!is_array($fieldSubmissionValue)) {
        return $return;
    }

    if(''!==$fieldId and []!== $fieldSettings){

        $fieldsetLabelLookup = $this->getFieldsetLabels($fieldId, $fieldSettings);
        $fieldsetTypeLookup = $this->getFieldsetTypes($fieldId,$fieldSettings);
    }else{
        
        $fieldsetLabelLookup = null;
        $fieldsetTypeLookup = null;
    }


    // $completeFieldsetID is in format {fieldsetRepeaterFieldId}{fieldsetDelimiter}{fieldsetFieldId}{submissionIndexDelimiter}{submissionIndex}
    foreach ($fieldSubmissionValue as $completeFieldsetId => $incomingValueArray) {

        // value is expected to be keyed inside incoming value array
        if (isset($incomingValueArray['value'])) {
            $value = $incomingValueArray['value'];
        } else {
            $value = $incomingValueArray;
        }

        // attempt parsing of fielsetField; if any fail, exit as data is corrupt
        $fieldsetWithSubmissionIndex = $this->parseFieldsetFieldReference($completeFieldsetId);

        if (0 == $fieldsetWithSubmissionIndex['fieldsetFieldId']) {

            return $return;
        }

        $parsedSubmissionIds = $this->parseSubmissionIndex($fieldsetWithSubmissionIndex['fieldsetFieldId']);

        if (-1 === $parsedSubmissionIds['submissionIndex']) {
            return $return;
        }

        $fieldsetFieldId = $parsedSubmissionIds['fieldsetFieldId'];


        $submissionIndex = $parsedSubmissionIds['submissionIndex'];

        $idKey = $fieldId . $this->fieldsetDelimiter . $fieldsetFieldId;

        if(is_null($fieldsetTypeLookup)){
            $fieldsetFieldType='';
        }else{
            $fieldsetFieldType = $fieldsetTypeLookup[$idKey];
        }
        
        if(is_null($fieldsetLabelLookup)){
            $fieldsetFieldLabel='';
        }else{
            $fieldsetFieldLabel = $fieldsetLabelLookup[$idKey];
        }


        $array = [];
        $array['value'] = $value;
        $array['type'] = $fieldsetFieldType;
        $array['label'] = $fieldsetFieldLabel;

        $return[$submissionIndex][$fieldsetFieldId] = $array;
    }

    return $return;
}

}

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 13:51:26

看上去是语法错误。将; bool更改为: bool

代码语言:javascript
复制
public function isFieldsetData(array $submission): bool
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68211305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档