Chave primária composta

261 views
Skip to first unread message

Elton Rodrigues Homem

unread,
Jan 18, 2018, 10:10:36 AM1/18/18
to Laravel Brasil
Boa tarde, pessoal!

Sou iniciante no LARAVEL. Gostaria de saber se, quando as tabelas do banco de dados possuem chave primária composta, como vocês criam a Model já que o Eloquent não suporta chave primária composta? Vocês sobrescrevem os métodos? Utilizam Query Builder? Ou utilizam outro ORM? Existe uma solução?

Paulo de Almeida

unread,
Jan 18, 2018, 12:46:53 PM1/18/18
to laravel...@googlegroups.com
No model:

class Example extends Model
{

    protected $table = 'examples';

    protected $primaryKey = ['first_id', 'second_id'];

    public $incrementing = false;

....

Na migration:

Schema::create('examples', function (Blueprint $table) {
    $table->integer('first_id')->unsigned();
    $table->integer('second_id')->unsigned();
    $table->text('other_column');

    $table->primary(['first_id', 'second_id']);

    $table->foreign('first_id')->references('id')->on('firsts');
    $table->foreign('second_id')->references('id')->on('seconds');
});


Com isso vc consegue usar chave composta.






Em 18 de janeiro de 2018 12:10, Elton Rodrigues Homem <dataser...@gmail.com> escreveu:
Boa tarde, pessoal!

Sou iniciante no LARAVEL. Gostaria de saber se, quando as tabelas do banco de dados possuem chave primária composta, como vocês criam a Model já que o Eloquent não suporta chave primária composta? Vocês sobrescrevem os métodos? Utilizam Query Builder? Ou utilizam outro ORM? Existe uma solução?

--
Você recebeu essa mensagem porque está inscrito no grupo "Laravel Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Paulo de Almeida

Linux User #494076
Ubuntu User # 28289

"In a world without walls who needs windows and gates?"

Elton Rodrigues Homem

unread,
Jan 19, 2018, 9:54:51 AM1/19/18
to Laravel Brasil
Boa tarde, Paulo!

Deu certinho!!!!!! Procurei na internet inteira e todos diziam que o Eloquent não suporta chave composta!!!! Você saberia me dizer se no comando find tb suportaria chave composta? 

Exemplo:
$escola = Escola::find($cdtipesc_param,$cdescola_param);

Muito obrigado pela ajuda!

Elton Rodrigues Homem

unread,
Jan 19, 2018, 10:56:13 AM1/19/18
to Laravel Brasil
Consegui fazer o "Find" dessa forma:

$escola = Escola::where('cdtipesc', $cdtipesc_param)
                           
->where(
'cdescola',$cdescola_param)
                           
->first();Codifique aqui



Muito Obrigado pela ajuda, Paulo! Salvou minha vida rsrs

Reply all
Reply to author
Forward
0 new messages