在Doctrine中编写模型方法

时间:2010-07-28 22:06:32

标签: php orm doctrine

我想通过在模型类定义中包含方法来封装特定于某些模型的功能。所以,例如:

abstract class BaseUser extends DoctrineRecord {    

    public function setTableDefinition(){  
       //etc.  
    }  

    public function setUp(){  
       //etc.  
    } 

    public function getName(){  
       return $this->name  
    }
}

$ this-> name会抛出错误,$ name也是如此。 是否可以从此处访问模型属性?

2 个答案:

答案 0 :(得分:1)

可以使用$ this-> propertyName访问属性 ,如任何人所期望的那样。我的问题是getProperty(在我的例子中是getName)是Doctrine框架自动创建的函数,当我尝试创建自己的函数时会产生冲突。我将名称更改为whatIsName(),一切正常。

答案 1 :(得分:0)

Basexxx类是抽象的。您应该将方法添加到扩展User的{​​{1}}类。

<强> [编辑] 您可以使用BaseUser访问子类中的基类的属性。例如:

$this->property

除了chilod类的实例中的所有基类属性之外,您还可以访问自定义函数:

class User extends BaseUser {
   public function getWelcomeString() {
      return 'Welcome, ' . $this->name . '!';
   }
}