Help with relationships in the Flat

Asked

Viewed 2,010 times

1

I am really enjoying using Laravel 5.4 and I have some doubts about the relationships and how best to use it

have the tables

evento
 -id
 -nome
categorias_evento
 -id
 -id_evento
 -nome
lotes_evento
 -id
 -id_categorias_evento
 -valor
itens_evento
 -id
 -id_categorias_evento
 -item

I want to understand so I can save and access things in them as dynamically as possible

in the Categoriaevento model I have to create a belongtomany function? and the others as it turns out?

I want to record everything dynamically and recover everything to popular the form (that and all together) how best?

relationships are an event may have several categories a category can have several lots and various items

  • 1

    Your question has two questions one is how to relate it all, and the other is how to use it with the Views, It would be easier for you to ask two questions related to each other, because relationships are one thing and then how to use everything together would be another point. To make the relationships for example I would need to know the relationships of each item, this is not clearly described have how you explain each relationship?

  • made the edit to show the relationships, in the views would not be a consequence of relationships? @Virgilionovic

  • 1

    in the View there are several ways to implement this varies according to each programmer or case study ... understood... ?

  • I’ve even seen some, what I thought would put a value by passing the value on each input, has some better way?

  • 1

    Look it’s what I said, let’s solve your problems by parts, first could be relationships ???

  • Of course, I have a little difficulty to understand the hasOne x belongTo and in which model I put, whether in the event or in others

  • 1

    i did the relationships take a look!

Show 2 more comments

1 answer

1


Relationships are an event can have multiple categories a category can have multiple lots and multiple items

Event


<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Evento extends Model
{
    //Nome da tabela.
    protected $table = 'eventos';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['nome'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento 1 para muitos
    public function categorias()
    {
        //     $this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Categorias', 'id_evento', 'id');
    }

}

Categories


<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Categorias extends Model
{
    //Nome da tabela.
    protected $table = 'categorias_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados
    //para preenchimento da informação.
    protected $fillable   = ['id_evento','nome'];

    //Deseja trabalhar ou não com campos created_at
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function evento()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Evento', 'id_evento', 'id');
    }

    //Relacionamento 1 para muitos
    public function lotes()
    {
        //$this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Lotes', 'id_categorias_evento', 'id');
    }

    //Relacionamento 1 para muitos
    public function itens()
    {
        //$this->hasMany(relação, chave estrangeira da relação, primary key local);
        return $this->hasMany('App\Itens', 'id_categorias_evento', 'id');
    }
}

Batches


<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Lotes extends Model
{
    //Nome da tabela.
    protected $table = 'lotes_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['id_categorias_evento','valor'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function categorias()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Categorias', 'id_categorias_evento', 'id');
    }

}

Items


<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Itens extends Model
{
    //Nome da tabela.
    protected $table = 'itens_evento';

    //Primary Key da Tabela.
    protected $primaryKey = 'id';

    //Item em um Array que são utilizados 
    //para preenchimento da informação.
    protected $fillable   = ['id_categorias_evento','item'];

    //Deseja trabalhar ou não com campos created_at 
    //e updated_at do tipo timestamp nessa tabela.
    public  $timestamps   = false;

    //Relacionamento
    public function categorias()
    {
        //$this->belongsTo(relação, chave estrangeira local, primary key da relação);
        return $this->belongsTo('App\Categorias', 'id_categorias_evento', 'id');
    }

}

References

  • 1

    Thank you very much, more than a reply a class

Browser other questions tagged

You are not signed in. Login or sign up in order to post.