Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 信条中的写作模式方法_Php_Orm_Doctrine - Fatal编程技术网

Php 信条中的写作模式方法

Php 信条中的写作模式方法,php,orm,doctrine,Php,Orm,Doctrine,我想通过在模型类定义中包含方法来封装特定于某些模型的功能。例如: abstract class BaseUser extends DoctrineRecord { public function setTableDefinition(){ //etc. } public function setUp(){ //etc. } public function getName(){

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

abstract class BaseUser extends DoctrineRecord {    

    public function setTableDefinition(){  
       //etc.  
    }  

    public function setUp(){  
       //etc.  
    } 

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

$this->name会引发错误,$name也会引发错误可以从这里访问模型属性吗?

类是抽象的。您应该将方法添加到扩展了
BaseUser
User
类中

[编辑] 您可以使用
$this->property
访问子类中基类的属性。例如:

abstract class BaseUser extends DoctrineRecord {    

    public function setTableDefinition(){  
       //etc.  
    }  

    public function setUp(){  
       //etc.  
    } 

    public function getName(){  
       return $this->name  
    }
}
class User extends BaseUser {
   public function getWelcomeString() {
      return 'Welcome, ' . $this->name . '!';
   }
}
然后,除了从chilod类的实例访问所有基类属性外,还可以访问自定义函数:

$user = new User();
//Hydrate object from database
echo $user->getWelcomeString();     // implemented in your child class
echo 'Your name is ' . $user->name; // implemented in the base class

可以像任何人所期望的那样,使用$this->propertyName访问属性。我的问题是getProperty(在我的示例中是getName)是一个由条令框架自动创建的函数,当我试图创建自己的函数时,会产生冲突。我把名字改成了whatIsName(),一切正常。

你说得对,谢谢。您知道如何从这些函数访问模型属性吗?谢谢你的帮助。@Justin:我已经用一个例子更新了我的答案。因为您是新来的,所以我会通过单击答案左侧的复选标记来提醒您接受最佳答案。再次感谢。不幸的是,这正是我一直在尝试的,但是抛出了一个错误,内容是:“未定义的属性:User::$name”。但是我确实正确地定义了这个列,因为$user->name正在按预期返回。抛出错误的只是$user->getName()。抱歉,“Undefined::Property”是一个解释程序警告,而不是错误。尽管如此,由于命名冲突(见下文),它仍然无法工作$this->name之后的code>只是问题中的一个输入错误?