私は、標準のゲッターとセッターの膨大な数に取って代わる魔法のゲッターとセッター関数について読みました。(リンク)
AnnotationForms
のような変数にアンダースコアを使用していて、アンダースコアを使用したくないため、Miles の機能を変更しました$_name
。getName()
私は魔法の関数を更新しましたが、例えば、私が取得しようとすると:
致命的なエラー: 未定義のメソッドへの呼び出し ... 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});
}
}
それはなぜですか、どうすれば修正できますか?