0

我想创建一个classwhich extends Model

<?php

use Phalcon\Mvc\Model;
use Phalcon\Mvc\Model\Query;

class ModelBase extends Model {

    var $table = null;

    public function __construct($table) {
        parent::__construct();
        $this->table = $table;
    }
    ...
}
?>

这个classModelBase 将被所有模型扩展classes

在运行时,我收到一条错误消息:PHP Fatal error: Cannot override final method Phalcon\Mvc\Model::__construct() in D:\wamp\www\resto\app\models\ModelBase.php on line 117

那么如何正确扩展 Modelclass呢?

4

2 回答 2

0

在您的基础模型中使用onConstruct方法。

class ModelBase extends \Phalcon\Mvc\Model
{
    protected $_table;

    public function onConstruct()
    {
        $this->_table = 'whatever';
    }
}

然后,您可以测试扩展基本模型是否有效。

class SomeModel extends \ModelBase
{
    public function test()
    {
        echo $this->_table;
    }
}

所以调用扩展模型的测试方法将回显任何内容

$model = new SomeModel();
$model->test();
于 2015-07-15T09:32:49.127 回答
0

如果$table是模型的数据库表名,最好的设置方法是:

class SomeModel extends ModelBase
{
    public function getSource()
    {
        return 'table_name';
    }
}
于 2015-07-15T12:04:37.557 回答