【问题标题】:Using MongoDb in the PHP Phalcon framework在 PHP Phalcon 框架中使用 MongoDb
【发布时间】:2018-06-23 02:13:00
【问题描述】:

我目前正在试验 Phalcon 框架,当我尝试将内容保存到 Mongo 数据库时遇到了一些复杂情况。我可以正确设置 MySQL 数据库而不会出现问题。每当我通过发送简单请求时,都会收到 500 内部服务器错误(检查 devTools)。我已经按照文档说明相应地设置了所有内容。 这是我的简单 index.php 引导 Mongo 初始化以及集合管理器:

// Setting Mongo Connection
$di->set('mongo', function() {
    $mongo = new Mongo();
    return $mongo->selectDb("phalcon");
}, true);

// Setting up the collection Manager
$di->set('collectionManager', function(){
    return new Phalcon\Mvc\Collection\Manager();
}, true);

这是我处理请求的控制器:

public function createAction() {
    $user = new User();

    $user->firstname = "Test ACC";
    $user->lastname = "tester";
    $user->password = "password";
    $user->email = "testing@example.com";

    if($user->create() == false) {
        echo 'Failed to insert into the database' . "\n";
        foreach($user->getMessages as $message) {
            echo $message . "\n";
        }
    } else {
        echo 'Happy Days, it worked';
    }

}

最后是我的简单用户类:

class User extends \Phalcon\Mvc\Collection {

public $firstname;
public $lastname;
public $email;
public $password;
public $created_at = date('Y-m-d H:i:s');

}

非常感谢大家的意见/建议。

【问题讨论】:

  • 500 错误到底是什么?
  • 内部服务器错误。
  • 我知道,对不起。收到 500 错误时,tail -f /var/log/httpd/error_log 的输出是什么?
  • 根据日志,它说找不到 Mongo() 类。它正在处理一个 PHP 致命错误。任何想法为什么?我的服务器上安装了 mongo>
  • 不够。试试 Phalcon\Cache\Backend\Mongo 而不是 Mongo。

标签: php mysql mongodb phalcon


【解决方案1】:

我认为这是因为您安装的 Mongo 无效。

尝试打印 phpinfo() 并检查是否完全加载了 mongo,如果没有 - 安装它,添加到 ini 文件(如果你使用 cli,不要忘记也添加到 cli ini)并到达那一刻,当mongo 已满载。

尝试不带 phalcon 的 mongo。任何简单的连接/插入。你可以在这里看到:Fatal Error - 'Mongo' class not found 某些人的 apache 模块版本存在问题。尝试重新安装不同的 mongo 版本。

如果你能打印出来:

echo Phalcon\Version::get(); 

phalcon 安装应该没有问题

要验证 mongo 安装,请尝试 php.net 中的任何示例:

http://www.php.net/manual/en/mongo.tutorial.php

【讨论】:

    【解决方案2】:

    有点晚了,但对于其他面临此问题的人,最好尝试连接到 mongo(在终端中运行“mongo”)以确保在您的开发环境中正确设置 mongo。

    此外,我通常会发现在这种情况下,将集合添加到 mongo 中的数据库,然后通过简单的读取测试 CRUD 进程有助于推动事情的发展。如果在这个阶段一切正常,那么您知道您的应用能够连接并且您可以继续写入,等等。

    This 看起来很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-07
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      相关资源
      最近更新 更多