現在、zf2でエンティティファイルの解析に取り組んでいます
エンティティを解析するための次のコードがあります:
$classname = get_class($this->object);
$cmf = $this->em->getMetadataFactory();
$class = $cmf->getMetadataFor($classname);
$fields = $class->fieldMappings;
それは戻ります:
array
'id' =>
array
'fieldName' => string 'id' (length=2)
'type' => string 'integer' (length=7)
'length' => null
'precision' => int 0
'scale' => int 0
'nullable' => boolean false
'unique' => boolean false
'id' => boolean true
'columnName' => string 'id' (length=2)
'artist' =>
array
'fieldName' => string 'artist' (length=6)
'type' => string 'string' (length=6)
'length' => null
'precision' => int 0
'scale' => int 0
'nullable' => boolean false
'unique' => boolean false
'columnName' => string 'artist' (length=6)
'title' =>
array
'fieldName' => string 'title' (length=5)
'type' => string 'string' (length=6)
'length' => null
'precision' => int 0
'scale' => int 0
'nullable' => boolean false
'unique' => boolean false
'columnName' => string 'title' (length=5)
カラムに新しいタイプを追加したい。たとえば、列を構成する場合は、uploadfieldまたはDatepickerです。
/**
* @ORM\Column(type="string")
* @type = 'datepicker'
*/
protected $publishdate;
クラスメタデータでその日付ピッカーを取得します(zend形式で入力要素を作成するため)
なにか提案を ?
によって修正されました
$reader = new \Doctrine\Common\Annotations\AnnotationReader();
$reflClass = new \ReflectionClass($classname);
foreach ($reflClass->getProperties() as $property) {
var_dump($reader->getPropertyAnnotations($property));
}
この
namespace Admin\Model;
use Doctrine\ORM\Mapping as ORM,
Admin\Scripts AS Scripts,
Doctrine\ORM\Mapping\Annotation as Ano;
/**
* @Annotation
* @Target("PROPERTY")
*/
class sina extends \Doctrine\Common\Annotations\Annotation
{
/** @var string */
public $sina;
}
/**
* A news entity.
*
* @ORM\Entity
* @ORM\Table(name="news")
* @property string $artist
* @property string $title
* @property int $id
*/
class News extends Scripts\BaseObject
{
/**
* @ORM\Id
* @ORM\Column(type="integer");
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
* @Admin\Model\sina(sina="sina")
*/
protected $artist;
/**
* @ORM\Column(type="string")
*/
protected $title;
}