나는 표준 게터와 세터의 거대한 플라이를 대신하는 마법 게터와 세터 기능에 대해 읽었다. (Link)젠드 프레임 워크 2 - 교리와 주석 형식에 대한 매직 게터와 세터
내가 AnnotationForms
을 사용하고 있으며 $_name
과 같은 변수에 밑줄을 표시하지 않으므로 Miles의 기능을 변경했습니다. 마법 기능을 업데이트했지만 예를 들어 전화를 걸 때 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 사실 내 마음에 무엇이 들어 왔습니까? 나는 hydrators가 마법 기능을 사용하지 않는다고 생각합니다. 그들은 실제 getter와 setter를 호출 할 수 있어야합니다. Iirc, 그들은 function_exists를 확인한다. – Sam
업데이트 된 코멘트보기, 역시 체크하겠습니다. – Sam