Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当不使用带有奇怪访问器的注释时,加载mongodb哈希关联数组映射的正确方法_Php_Mongodb - Fatal编程技术网

Php 当不使用带有奇怪访问器的注释时,加载mongodb哈希关联数组映射的正确方法

Php 当不使用带有奇怪访问器的注释时,加载mongodb哈希关联数组映射的正确方法,php,mongodb,Php,Mongodb,我这样做是为了映射文档的非注释映射。但它没有赶上。我知道这是旧代码,但有人知道如何正确地映射它吗。谢谢 关联PR= 与此相关的还有: 上面的是一个中间基类,下面的是基类 /** * @param string $property * @param bool $n * @param bool $m * * @return mixed */ protected function get($property, $n = false, $m = false) { $curr

我这样做是为了映射文档的非注释映射。但它没有赶上。我知道这是旧代码,但有人知道如何正确地映射它吗。谢谢

关联PR=

与此相关的还有:

上面的是一个中间基类,下面的是基类

/**
 * @param string $property
 * @param bool   $n
 * @param bool   $m
 *
 * @return mixed
 */
protected function get($property, $n = false, $m = false)
{
    $currentValue = $this->$property;
    if (false !== $n && false !== $m) {
        if (null === $n && null === $m) {
            return $currentValue;
        }
        if (array_key_exists($n, $currentValue) && array_key_exists($m,$currentValue[$n]){
            return $currentValue[$n][$m];
        }
    }
    if (null === $n) {
        return $currentValue;
    }
    if (array_key_exists($n, $currentValue)) {
        return $currentValue[$n];
    }
}

我发现并解决了这个问题。我遇到了几个问题:

  • 首先,在使用ORM很长一段时间后,我感到困惑,
    name
    是mongo中的一个字段,
    fieldName
    是一个属性名()
  • 其次,如果
    fieldName
    与任何属性都不匹配,那么它就是(ORM抛出异常的地方)。因此,很难找出为什么不保存该财产。()

一切正常后。

看看这个。我恢复了为令牌文档所做的变通方法,现在它也失败了。调试应该更容易,因为有一个简单的setter\getter@cordoval奇怪的访问器不是问题(:
protected $paymentrequest_nnn_amt = array();

    public function getPaymentrequestAmt($n = null)
    {
        return $this->get('paymentrequest_nnn_amt', $n);
    }

    public function setPaymentrequestAmt($n, $value)
    {
        $this->set('paymentrequest_nnn_amt', $value, $n);
    }
/**
 * @param string $property
 * @param bool   $n
 * @param bool   $m
 *
 * @return mixed
 */
protected function get($property, $n = false, $m = false)
{
    $currentValue = $this->$property;
    if (false !== $n && false !== $m) {
        if (null === $n && null === $m) {
            return $currentValue;
        }
        if (array_key_exists($n, $currentValue) && array_key_exists($m,$currentValue[$n]){
            return $currentValue[$n][$m];
        }
    }
    if (null === $n) {
        return $currentValue;
    }
    if (array_key_exists($n, $currentValue)) {
        return $currentValue[$n];
    }
}