Armado de Esquemas YML¶
A diferencia de Symfony 1, el esquema es armado por cada clase
Primero creamos la carepta doctrine
mkdir src/JobeetBundle/Resources/config/doctrine
Creamos y editamos los archivos de esquemas
mcedit src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml
# src/JobeetBundle/Resources/config/doctrine/Personas.orm.yml
JobeetBundle\Entity\Personas:
type: entity
table: personas
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
nombre:
type: string
length: 255
nullable: true
apellido:
type: string
length: 255
dni:
type: string
length: 255
nullable: true
activa:
type: boolean
nullable: true
manyToOne:
tiposdocumentos:
targetEntity: Tiposdocumentos
inversedBy: personas
joinColumn:
name: tiposdocumentos_id
referencedColumnName: id
mcedit src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml
# src/JobeetBundle/Resources/config/doctrine/Tiposdocumentos.orm.yml
JobeetBundle\Entity\Tiposdocumentos:
type: entity
table: tiposdocumentos
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
name:
type: string
length: 255
unique: true
oneToMany:
products:
targetEntity: Personas
mappedBy: tiposdocumentos
Generamos los archivos de Entidades
php app/console doctrine:generate:entities JobeetBundle
Si no hemos creado la base de datos y tenemos configuraod en app/config/parameters.yml el acceso, podemos crearla
ejemplo de parameters.yml
parameters:
database_host: 127.0.0.1
database_port: null
database_name: s27
database_user: root
database_password: MICLAVE_MYSQL
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: dedeb278ce6f7db6ea0c78fa04499b87e418f613
php app/console doctrine:database:create
Luego trasladamos a la base de datos el esquema, en este caso conviene ya tener creada la base de datos segun lo configurado en parameters.yml
php app/console doctrine:schema:update --force
Agregamos un metodo para los combos que obtienen datos entre clases
en src/JobeetBundle/Entity/Tiposdocumentos.php
public function __toString()
{
return $this->getName();
}
Yo arme un archivo generar con el siguiente contenido
php app/console doctrine:generate:entities JobeetBundle php app/console doctrine:schema:update --force php app/console doctrine:generate:crud --entity=JobeetBundle:Personas --route-prefix=personas --with-write --format=yml --overwrite php app/console cache:clear --env=prod php app/console cache:clear --env=dev
le di todos los permisos, incluso el de ejecucion
chmod 777 generar
luego en consola solo corro , desde la carpeta donde se encuentra el archivo generar
./generar
le doy Enter en todas las opciones
Referencias: