Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite
Estou com dificuldades para fazer uma associação n x n, em php, procurei mas so encontrei exemplos n x 1 ou vice e versa.
Tenho um codigo que fiz, como aprendi no java mas não está funcionando.
Alguém pode me ajudar?
<?php
class Aluno{
}
class Professor{
}
class matricula{
private Professor $professor;
private Aluno $aluno;
public Professor getProfessor(){
return $this -> professor;
}
public Professor setProfessor($tmp_professor){
return $this -> professor;
}
public Aluno getAluno(){
$this -> aluno;
}
public Aluno setAluno($tmp_aluno){
$this -> aluno = $tmp_aluno;
}
}Aqui tem alguns exemplos práticos de todo tipo de associação, a que você quer acho que é a 5.9, o site tá em inglês mas acho que dá pra entender a lógica, dá uma olhada ae
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html
Você esta cometendo alguns erros de sintaxe do php, e principalmente, mesmo se fosse em java ou qualquer outra linguagem, não é correto querer representar o modelo relacional do banco em suas classes.
Reitero a sugestão do Sergio, Apesar do doctrine ser um framework, os exemplos são totalmente validos
>
14 horas atrás, allenprado disse:
Estou com dificuldades para fazer uma associação n x n, em php, procurei mas so encontrei exemplos n x 1 ou vice e versa.
Para você entender como seus objetos podem se relacionar de forma n..n, pesquise por DIP ou seja Inversão de Dependencia.
>
13 horas atrás, marsolim disse:
brodi tendi nada hahahaha dá uma pesquisa aí por php conexão mysqli ou php conexão pdo
Amigo @marsolim você tem que parar de floodar posts, senão as pessoas acham que o post já foi respondido e nem chega a ver. Se desconhece o assunto, simplesmente ignore ou estude um pouco mais para saber como ajudar.
amigo williams duarte eu só respondo quando acho que com um pouco mais de informação ou com alguns codigos mais eu posso entender melhor e tentar ajudar. isso não é flood, flood é quando posta várias coisas em sequencia no mesmo tópico e eu so posto uma vez fazendo alguma pergunta tanto que tu podes verificar que não respondo em muitos tópico só quando acho que com um pouco mais de informação eu posso tentar ajudar e outra que quase todo tópico que eu respondo sempre tem mais gente tentando ajudar então acho que pelo menos nos que tento ajudar o pessoal não acha que pode passar pra outro nao
mas de qualquer jeito agradeço sei que tá tentando ajudar a manter o forum limpo
Vamos focar no post por favor pessoal....
@allenprado
Tem bastante coisa que pode complicar mesmo na transição de alguma linguagem Java/C#/C++ para o php...
Montei alguns exemplos...
Exemplo o método da classe mesmo...
public function setNome($nome)
{
$this->nome = $nome;
}
Vi você tentando forçar um tipo de classe logo na declaração do atributo
Uma maneira no php seria:
public function setProfessor(Professor $professor) $this->professor = $professor;
}
Isso garante que a entrada do método **setProfessor **seja uma instancia da classe **Professor**...
Outro erro bastante comum em quem está migrando/aprendendo o php é o método construtor, ex:
<?php private $nome;
/* ERRADO
public function function Aluno($nome)
{
$this->nome = $nome;
}
*/
//php way:
public function __construct($nome)
{
$this->nome = $nome;
}
}
$aluno = new Aluno('Gabriel');
Da uma lida geral:
[http://php.net/manual/pt_BR/language.oop5.php](http://php.net/manual/pt_BR/language.oop5.php)
Antes de pensar em resolver problemas de n+1 em Objetos
brodi tendi nada hahahaha dá uma pesquisa aí por php conexão mysqli ou php conexão pdo