Tentei separar os cursos em categorias através da criação de uma nova entidade Categoria, mas não estou conseguindo pegar o valor e persistir no banco de dados.
Criei a entidade Categoria com:
/**
* @Entity
* @Table (name="categorias")
*/
class Categoria
{
/**
* @Id
* @GeneratedValue
* @Column (type = "integer")
*/
private $id;
/**
* @Column (type="string")
*/
private $nomeCategoria;
/**
* @OneToMany (targetEntity="Curso", mappedBy="Categoria", cascade={"remove", "persist"})
*/
private $cursos;
public function __construct()
{
$this->cursos = new ArrayCollection();
}
e adiciono, além dos getters e setters, um método pra adicionar cursos, e vincularia à entidade Curso, deixando a tabela de cursos também com um categoria_id gerado por Migrations. Não deixei o códico todo aqui para que não ficasse muito grande, mas adicionei o método ensinado no curso de Doctrine:
public function addCurso(Curso $curso)
{
$this->cursos->add($curso);
$curso->setCategoria($this);
return $this;
}
Mas acho que não é assim que eu deveria adicionar um curso e vincular à categoria.
Mas tentei persistir isso buscando o valor da categoria_id dessa forma na view:
<select name="categoria_id">
<?php foreach($categorias as $categoria): ?>
<option value="<?= $categoria['id']?>"><?= $categoria['nome']?></option>
<?php endforeach?>
</select>
E tentei pegar o valor por um INPUT_POST:
$categoriaId = filter_input(INPUT_POST, 'categoria_id', FILTER_SANITIZE_STRING);
Ah e adicionei em Categorias, os valores Javascript, PHP e Laravel só para fins de teste e para tentar vincular os Cursos aos Ids dessas categorias. Mas isso parece que não funciona. Alguém poderia me dar uma dica?