我讀到了一個神奇的getter和setter函數,它取代了標準getter和setter的巨大優勢。 (Link)Zend Framework 2 - 神奇的Getter和Setter for Doctrine和Annotation形式
我改變了Miles的功能,因爲我使用的是AnnotationForms
,並且不想在$_name
這樣的變量中使用下劃線。我更新了魔法功能,但在嘗試撥打例如getName()
我得到:
Fatal error: Call to undefined method ... Entity::getName()
這裏是我的代碼:
<?php
namespace Entity;
use Doctrine\ORM\Mapping as ORM;
use Zend\Form\Annotation as Form;
/**
* @ORM\Entity
* @ORM\Table(name="masterdata_entity")
* @Form\Name("entity")
* @Form\Attributes({ "class": "form-horizontal" })
* @Form\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty")
*/
class Entity
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @Form\Exclude()
*/
protected $id;
/**
* @ORM\Column(type="string")
* @Form\Filter({"name":"StringTrim"})
* @Form\Validator({"name":"StringLength", "options":{"min":1, "max":50}})
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Name"})
*/
protected $name;
public function __get($property) {
return (isset($this->{$property}) ? $this->{$property} : null);
}
public function __set($property, $value) {
if (isset($this->{$property})) {
$this->{$property} = $value;
}
}
public function __isset($property) {
return isset($this->{$property});
}
}
任何想法,這是爲什麼,我該如何解決?
請提供您的實體代碼,請 – Sam
這就是我們需要的部分:D實際上,我腦子裏想到的是,我認爲水合物不能用魔法功能工作。他們需要實際的getter和setter來調用。 Iirc,他們檢查function_exists – Sam
查看更新的評論,但我也會檢查它 – Sam