1. O que é um modelo (model) no Symfony?
No Symfony, um modelo é uma classe que representa uma tabela ou entidade do banco de dados e é responsável por gerenciar o acesso e manipulação dos dados. É no modelo que são definidos os campos da tabela, as relações com outras tabelas (caso existam) e as regras de validação dos dados.
2. Como criar um modelo no Symfony?
Para criar um modelo no Symfony, basta criar uma classe no diretório /src/Entity do seu projeto que herde da classe DoctrineORMMappingEntity. Em seguida, basta definir os campos da tabela utilizando as anotações do Doctrine ORM como @Column, @JoinColumn, entre outras.
3. Como mapear os campos da tabela para o modelo?
Para mapear os campos da tabela para o modelo no Symfony, é necessário utilizar as anotações do Doctrine ORM. Por exemplo, para mapear um campo “nome” do tipo string, basta utilizar a anotação @Column(type=”string”, length=255). É possível utilizar outras opções como nullable, unique, default, entre outras.
4. Como definir as relações entre as tabelas no modelo?
Para definir as relações entre as tabelas no modelo no Symfony, é necessário utilizar as anotações do Doctrine ORM. Por exemplo, para definir uma relação many-to-one com outra tabela, basta utilizar a anotação @ManyToOne(targetEntity=”OutraTabela”) e especificar a tabela de destino.
5. Como definir as regras de validação dos dados no modelo?
Para definir as regras de validação dos dados no modelo no Symfony, é necessário utilizar as anotações do Doctrine ORM. Por exemplo, para definir que um campo é obrigatório, basta utilizar a anotação @AssertNotNull. É possível utilizar outras opções como @AssertNotBlank, @AssertType, entre outras.
6. Como criar consultas (queries) utilizando o modelo?
Para criar consultas utilizando o modelo no Symfony, é possível utilizar a classe EntityManager. Por exemplo, para buscar todos os registros de uma tabela, basta utilizar o método $entityManager->getRepository(NomeDoModelo::class)->findAll(). É possível criar consultas mais complexas utilizando a classe QueryBuilder.
7. Como salvar um registro utilizando o modelo?
Para salvar um registro utilizando o modelo no Symfony, é possível utilizar a classe EntityManager. Por exemplo, para criar um novo registro, basta instanciar o modelo, atribuir os valores e chamado o método $entityManager->persist($modelo). Para atualizar um registro existente, basta atribuir os valores e chamar o método $entityManager->flush().
8. Como excluir um registro utilizando o modelo?
Para excluir um registro utilizando o modelo no Symfony, é possível utilizar a classe EntityManager. Basta buscar o registro utilizando um dos métodos de busca (como find ou findOneBy) e chamado o método $entityManager->remove($modelo) seguido do método $entityManager->flush().
9. Como usar o console do Symfony para criar modelos?
Para criar modelos utilizando o console do Symfony, basta utilizar o comando php bin/console make:entity e seguir as instruções. É possível definir os campos, tipos e relações utilizando as opções disponíveis.
10. Como automatizar a criação de modelos com o SensioGeneratorBundle?
Para automatizar a criação de modelos com o SensioGeneratorBundle, basta instalar o pacote através do composer e executar o comando php bin/console generate:doctrine:entity. É possível definir as opções como o nome da tabela, os campos e as relações utilizando as opções disponíveis.