Doctrine ORM和slim php - 为新创建的表手动添加类

时间:2013-08-05 17:49:46

标签: doctrine slim

我正在开发一个遗留应用程序,这是我第一次使用doctrine(通常是一个铁人)。

我在db上手动创建了一个名为“SNACKS”的新表(命名约定全部为大写)。

我创建了一个models / entities / Snack.dcm.yaml文件:

Snack:
    type: entity
    table: SNACKS
    fields:
        id:
            id: true
            type: integer
            unsigned: false
            nullable: false
            generator:
                strategy: IDENTITY
        patient_id:
            type: integer
            unsigned: false
            nullable: false
        snack_name:
            type: string
            length: 50
            fixed: false
            nullable: false
        created_at:
            type: datetime
            nullable: false
        updated_at:
            type: datetime
            nullable: false
    lifecycleCallbacks: {  }

但仍然会收到此错误:[Semantical Error] line 0, col 14 near 'Snack s': Error: Class 'Snack' is not defined.

我还注意到模型目录“model /”中有一些文件也被复制了:

<?php



use Doctrine\ORM\Mapping as ORM;

/**
 * Snacks
 */
class Snack
{
    /**
     * @var integer
     */
    private $id;

    /**
     * @var integer
     */
    private $patient_id;

    /**
     * @var text
     */
    private $snack_name;

    /**
     * @var datetime
     */
    private $created_at;

    /**
     * @var datetime
     */
    private $updated_at;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }


    /**
     * Get id
     *
     * @return integer 
     */
    public function getPatientId()
    {
        return $this->patient_id;
    }


    public function setPatientId($patient_id)
    {
            $this->patient_id = $patient_id;
        return $this->patient_id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Medicines
     */
    public function setSnackName($name)
    {
        $this->snack_name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getSnackName()
    {
        return $this->snack_name;
    }

    /**
     * Set generic
     *
     * @param string $generic
     * @return Medicines
     */
    public function setCreatedAt($datetime)
    {
        $this->created_at = $datetime;

        return $this;
    }

    /**
     * Get generic
     *
     * @return string 
     */
    public function getCreatedAt()
    {
        return $this->created_at;
    }

    /**
     * Set contraInd
     *
     * @param string $contraInd
     * @return Medicines
     */
    public function setUpdatedAt($datetime)
    {
        $this->updated_at = $datetime;

        return $this;
    }
}
  • 请注意这些评论是错误的,因为我从现有文件中复制了它并更改了我需要的内容。

为什么Doctrine没有找到班级的任何想法?

1 个答案:

答案 0 :(得分:0)

好吧,通过一个学说教程并最终得到了作曲家的bootstrap.php文件来计算出来。

看起来前一个开发人员手动需要所有模型文件,所以我不得不在那里添加需求。

希望能有所帮助。