Webtools和开发者工具在Phalcon框架上的问题


Webtools and developer tools issue on Phalcon framework

我在Ubuntu 14.04上安装了phalcon 3.0.1-14。还安装了Phalcon DevTools(3.0.1)。最初,我启用了webtools,当我访问那个页面时,总是出现一些警告:

Cannot bind an instance to a static closure in /home/pish/vendor/phalcon/devtools/scripts/Phalcon/Web/Tools.php
Cannot bind an instance to a static closure in /home/pish/vendor/phalcon/devtools/scripts/Phalcon/Web/Tools/views/index.phtml

我只是忽略了它们,并试图从数据库中的现有表中创建一个模型。当我点击"生成"按钮时我得到以下错误:

Phalcon'Mvc'Dispatcher'Exception: ModelsController handler class cannot be loaded

,则不创建模型。我也测试了创建一个控制器,但是控制器也出现了类似的错误

最后,我通过控制台phalcon model users创建了模型,并且成功创建了。

但是,我注意到,由开发人员工具创建的验证函数不起作用,并导致以下问题当我尝试创建用户时出现错误:
Catchable fatal error: Argument 1 passed to Phalcon'Mvc'Model::validate() must implement interface Phalcon'ValidationInterface, instance of Phalcon'Mvc'Model'Validator'Email given in...

我的问题基本上是,我安装的开发人员工具版本有什么问题导致了问题使用Webtools和为模型/控制器等生成的函数?或者我可能出了什么问题在我的系统里?

不能将实例绑定到静态闭包

https://github.com/phalcon/cphalcon/issues/11029

可捕获的致命错误:参数1传递给Phalcon'Mvc'Model::validate()

在3.0中修复。X分支(即将发布)

关于您的第二个错误消息:

可捕获的致命错误:参数1传递给Phalcon'Mvc'Model::validate()必须实现接口Phalcon'ValidationInterface, Phalcon'Mvc'Model'Validator'Email的实例…

模型验证在Phalcon 3.0中发生了变化。在Phalcon v2中你必须做

public function validation()
{
    $this->validate(
        new Phalcon'Mvc'Model'Validator'Email(['field' => 'email']);
    );
    if ($this->validationHasFailed() == true) {
        return false;
    }
}

但是Phalcon'Mvc'Model'Validation在v3中已被弃用,您应该使用Phalcon'Validation代替。只需将代码修改如下:

public function validation()
{
    $validator = new Validation();
    $validator->add(
       'email', //your field name
        new Phalcon'Validation'Validator'Email([
            'model' => $this,
            'message' => 'Please enter a correct email address'
        ])
    );
    return $this->validate($validator);
}
也许DevTools还没有更新这部分,我不确定。