Eloquent ORM ManytoMany constraint error 1452

0

I'm developing an application using Eloquent ORM, but I'm having a problem with the N to N relationship,

The relationship is this:

TherecordsI'musingasatestintheProductGroupstable:

TherecordsI'musingasatestintheSubassemblyTabletable:

AsyoucanseethePivottableistheproductgroups_productsubgroups:

The models look like this:

class Grupos extends Model{
    protected $table = 'produtosgrupos';
    protected $primaryKey = 'gruposId';
    public $timestamps = false;
    protected $fillable = [
        'gruposId',
        'grupos_titulo',
        'grupos_slug',
    ];

    public function subgrupos() {
       return $this->belongsToMany(SubGrupos::Class, 'produtosgrupos_produtossubgrupos', 'gruposId', 'gruposId');
    }
}

I'm trying to create the statement in the pivot table like this:

$modelGrupo = new Grupos;
$grupo = $modelGrupo->find(3);
$grupo->subgrupos()->attach(14); //o erro de constraint aconetece aqui

I ran a test directly in the database and it worked:

INSERT INTO produtosgrupos_produtossubgrupos (gruposId, subgruposId) VALUES (3, 14);

and executed normally, I forgot something in eloquent?

    
asked by anonymous 17.07.2018 / 23:09

1 answer

1

You are incorrectly passing the fourth argument (foreign key) There are groups where the subgroups should be.

 public function subgrupos() {
       return $this->belongsToMany(SubGrupos::Class, 'produtosgrupos_produtossubgrupos', 'gruposId', 'subgruposId');
    }
    
18.07.2018 / 00:01