protected function _appendNotMatching($query, $options)
    {
        $target = $this->_targetTable;
        if (!empty($options['negateMatch'])) {
            $primaryKey = $query->aliasFields((array)$target->getPrimaryKey(), $this->_name);
            $query->andWhere(function ($exp) use ($primaryKey) {
                array_map([$exp, 'isNull'], $primaryKey);

                return $exp;
            });
        }
    }
protected function _appendNotMatching($query, $options)
    {
        $target = $this->_targetTable;
        if (!empty($options['negateMatch'])) {
            $primaryKey = $query->aliasFields((array)$target->getPrimaryKey(), $this->_name);
            $query->andWhere(function ($exp) use ($primaryKey) {
                array_map([$exp, 'isNull'], $primaryKey);

                return $exp;
            });
        }
    }
protected function _appendNotMatching ( $ query , $ options ) { $ target = $ this -> _targetTable ; if ( ! empty ( $ options [ 'negateMatch' ] ) ) { $ primaryKey = $ query -> aliasFields ( ( array ) $ target -> getPrimaryKey ( ) , $ this -> _name ) ; $ query -> andWhere ( function ( $ exp ) use ( $ primaryKey ) { array_map ( [ $ exp , 'isNull' ] , $ primaryKey ) ; return $ exp ; } ) ; } }
Conditionally adds a condition to the passed Query that will make it find
records where there is no match with this association.

@param \Cake\Datasource\QueryInterface $query The query to modify
@param array $options Options array containing the `negateMatch` key.
@return void
Conditionally adds a condition to the passed Query that will make it find records where there is no match with this association .