【问题标题】:PhalconPHP ORM gettype errorPhalconPHP ORM gettype 错误
【发布时间】:2017-07-13 08:58:53
【问题描述】:

我正在尝试使用 Phalcon\Mvc\Model 通过 PhalconPHP 从 MongoDB 获取网站设置。这是我的模型:

namespace CMS4\Common\Model;

use Phalcon\Mvc\Model as MongoDocument;

class Settings extends MongoDocument
{
        /**
         *
         * @var \MongoId
         */
        protected $id;

        /**
         *
         * @var int
         */
        public $websiteId;

        /**
         *
         * @var array[]
         */
        public $leUserConfig;

        public function initialize()
        {
                $this->setConnectionService('mongo');
        }

        /**
         * By default that model will refer to `WebsiteSettings`, wherefore getSource is implemented
         * @return string
         */
        public function getSource()
        {
                return 'WebsiteSettings';
        }
}

但是,通过 $test = Settings::find(); 调用它,我得到以下 RuntimeException:

调用未定义的方法 ::gettype()

我猜这在 PhalconPHP 内部某处使用,但快速浏览源代码让我无处可去。我没有想法,请指教。如果我需要提供更多信息,请直接说出来。

【问题讨论】:

  • 据我所知,如果您尝试通过 primary_key、条件或 where 子句查找,您需要传递一些东西来查找...olddocs.phalconphp.com/en/3.0.1/reference/odm.html
  • 使用 Mongo 时,您应该扩展 Phalcon\Mvc\Collection 而不是 Model。您可以在此处了解有关如何使用集合和 phalcon odm 的更多信息:docs.phalconphp.com/en/3.2/db-odm
  • @Armon Bigham 成功了,谢谢。如何将其添加为已接受的答案,我想您必须将其添加为答案而不是评论?
  • @VeselinBakov 很高兴它成功了。我已将其添加为答案:)

标签: php phalcon phalcon-orm


【解决方案1】:

当使用 Phalcon 框架查询 Mongo Collection 时,您应该使用 ODM 而不是 ORM,因此,使用 Collection 类而不是 Model 类。

您可以在此处详细了解如何设置和使用这些功能: https://docs.phalconphp.com/en/3.2/db-odm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2015-06-02
    相关资源
    最近更新 更多