Phalcon框架上的Webtools和开发人员工具问题

时间:2016-09-13 16:40:18

标签: php phalcon

我在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和为模型/控制器等生成的功能?或者我可能有问题 在我的系统中?

2 个答案:

答案 0 :(得分:0)

  

无法将实例绑定到静态闭包

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

  

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

已修复3.0.x分支(即将发布)

答案 1 :(得分:0)

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

  

可捕获致命错误:传递给Phalcon \ Mvc \ Model :: validate()的参数1必须实现接口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;
    }
}

但在v3中已弃用Phalcon\Mvc\Model\Validation,您应该使用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尚未更新此部分,我不确定。